SysColumnsDAO.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;
using System.Data.SqlClient;

namespace dbToCode
{
    public class SysColumnsDAO
    {

        public static List<SysColumnsModel> GetList(string tableList)
        {
            SqlDataReader dr= DbHelperSQL.ExecuteReader(GetSql(tableList));
            List<SysColumnsModel> list = new List<SysColumnsModel>();
            while (dr.Read())
            {
                SysColumnsModel model = new SysColumnsModel();
                model.Id = Convert.ToInt32(dr.GetValue(0));
                model.Name = dr.GetString(1);
                model.TableName = dr.GetString(2);
                model.IsIdentity = dr.GetString(3);
                model.Pk = dr.GetString(4);
                model.DataType = dr.GetString(5);
                model.Byte = Convert.ToString(dr.GetValue(6));
                model.DataLenth = Convert.ToInt32(dr.GetValue(7));
                model.LessFloat = Convert.ToInt32(dr.GetValue(8));
                model.IsNull = dr.GetString(9);
                model.DefaultValue = dr.GetString(10);
                if (dr[11] != DBNull.Value)
                    model.Content = Convert.ToString(dr[11]);
                 
                list.Add(model);
            }
            return list;
        }

        public static string GetSql(string tableList)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT a.colorder N'id',a.name N'name',d.name N'tableName'," +
            "(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then 'true'else 'false' end) N'IsIdentity'," +
            "(case when (SELECT count(*) FROM sysobjects " +
            "WHERE (name in (SELECT name FROM sysindexes WHERE (id = a.id) AND " +
            "(indid in (SELECT indid FROM sysindexkeys WHERE (id = a.id) AND " +
            "(colid in (SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name))))))) " +
            "AND (xtype = 'PK'))>0 then 'true' else 'false' end) N'pk', b.name N'dataType', a.length N'byte', " +
            "COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'dataLength', isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'LessFloat'," +
            "(case when a.isnullable=1 then 'true'else 'false' end) N'isnull',isnull(e.text,'') N'defaultValue'  ,p.value as N'content'" +
            "FROM syscolumns a left join systypes b  on a.xtype=b.xusertype inner join sysobjects d " +
            "on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e " +
            "on a.cdefault=e.id left join sys.extended_properties as p on " +
            "d.id =p.major_id and p.name='MS_Description' and p.minor_id=a.colorder  where d.name in(" +tableList+
            ") order by object_name(a.id),a.colorder");
            return sb.ToString();
        }

        private static SysColumnsModel GetModel(DataRow dr)
        {
后面还有 15 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。