如何获得数据库中某个表的字段名以及对应的数据类型??
如一个表为tbl_name:[Id int ;name char]我怎样才能获得:[Id int ;name char]高手见笑了,知道的简要说一下,有关键代码就最好了!!

解决方案 »

  1.   


    http://blog.csdn.net/zhzuo/archive/2004/07/03/33273.aspx
      

  2.   

    数据库显示表,字段等详细描述 
    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();