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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。