数据库显示表,字段等详细描述 IPropertyNotifySink SqlCommand mys=sqlcon.CreateCommand(); mys.CommandText=" SELECT 表名 = CASE WHEN a.colorder = 1 THEN d .name ELSE '' END, "+ " 表说明 = CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END, "+ " 字段序号 = a.colorder, 字段名 = a.name, "+ " 标识 = CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') "+ " = 1 THEN '√' ELSE '' END, 主键 = CASE WHEN EXISTS"+ " (SELECT 1"+ " FROM sysobjects"+ " WHERE xtype = 'PK' AND name IN"+ " (SELECT name"+ " FROM sysindexes"+ " WHERE indid IN"+ " (SELECT indid"+ " FROM sysindexkeys"+ " WHERE id = a.id AND colid = a.colid))) THEN '√' ELSE '' END, "+ " 类型 = b.name, 占用字节数 = a.length, 长度 = COLUMNPROPERTY(a.id, a.name, "+ " 'PRECISION'), 小数位数 = isnull(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0), "+ " 允许空 = CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END, 默认值 = isnull(e.text, "+ " ''), 字段描述 = isnull(g.[value], '')"+ " 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"+ " sysproperties g ON a.id = g.id AND a.colid = g.smallid LEFT JOIN"+ " sysproperties f ON d .id = f.id AND f.smallid = 0"+ " WHERE d .name = '"+cbo1.Text+"'"+ " ORDER BY a.id, a.colorder"; SqlDataReader myRead1=mys.ExecuteReader(); txt1.Text=""; while(myRead1.Read()) { txt1.Text=txt1.Text + //myRead1.GetSqlString(0).ToString()+ // myRead1.GetSqlString(1).ToString()+ formatstr(myRead1.GetSqlValue (2).ToString(),10)+ formatstr(myRead1.GetSqlString(3).ToString(),25)+ // myRead1.GetSqlString(4).ToString()+ // myRead1.GetSqlString(5).ToString()+ formatstr(myRead1.GetSqlString(6).ToString(),18)+ // myRead1.GetSqlString(7).ToString()+ formatstr(myRead1.GetSqlValue(8).ToString(),10)+ // myRead1.GetSqlString(9).ToString()+ // myRead1.GetSqlString(10).ToString()+ // myRead1.GetSqlString(11).ToString()+ myRead1.GetSqlString(12).ToString()+System.Environment.NewLine; } myRead1.Close();
http://blog.csdn.net/zhzuo/archive/2004/07/03/33273.aspx
IPropertyNotifySink
SqlCommand mys=sqlcon.CreateCommand();
mys.CommandText=" SELECT 表名 = CASE WHEN a.colorder = 1 THEN d .name ELSE '' END, "+
" 表说明 = CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END, "+
" 字段序号 = a.colorder, 字段名 = a.name, "+
" 标识 = CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') "+
" = 1 THEN '√' ELSE '' END, 主键 = CASE WHEN EXISTS"+
" (SELECT 1"+
" FROM sysobjects"+
" WHERE xtype = 'PK' AND name IN"+
" (SELECT name"+
" FROM sysindexes"+
" WHERE indid IN"+
" (SELECT indid"+
" FROM sysindexkeys"+
" WHERE id = a.id AND colid = a.colid))) THEN '√' ELSE '' END, "+
" 类型 = b.name, 占用字节数 = a.length, 长度 = COLUMNPROPERTY(a.id, a.name, "+
" 'PRECISION'), 小数位数 = isnull(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0), "+
" 允许空 = CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END, 默认值 = isnull(e.text, "+
" ''), 字段描述 = isnull(g.[value], '')"+
" 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"+
" sysproperties g ON a.id = g.id AND a.colid = g.smallid LEFT JOIN"+
" sysproperties f ON d .id = f.id AND f.smallid = 0"+
" WHERE d .name = '"+cbo1.Text+"'"+
" ORDER BY a.id, a.colorder"; SqlDataReader myRead1=mys.ExecuteReader(); txt1.Text="";
while(myRead1.Read())
{
txt1.Text=txt1.Text + //myRead1.GetSqlString(0).ToString()+
// myRead1.GetSqlString(1).ToString()+
formatstr(myRead1.GetSqlValue (2).ToString(),10)+
formatstr(myRead1.GetSqlString(3).ToString(),25)+
// myRead1.GetSqlString(4).ToString()+
// myRead1.GetSqlString(5).ToString()+
formatstr(myRead1.GetSqlString(6).ToString(),18)+
// myRead1.GetSqlString(7).ToString()+
formatstr(myRead1.GetSqlValue(8).ToString(),10)+
// myRead1.GetSqlString(9).ToString()+
// myRead1.GetSqlString(10).ToString()+
// myRead1.GetSqlString(11).ToString()+
myRead1.GetSqlString(12).ToString()+System.Environment.NewLine;
}
myRead1.Close();