//dg绑定数据
        public void Binding(string sqlstr)
        {
            SqlCommand com2 = DB.sqlcom(sqlstr);
            SqlDataAdapter ad = new SqlDataAdapter(com2);
            DataSet ds = new DataSet();
            ds.Clear();
            ad.Fill(ds, "temp1");
            dg.DataSource = ds.Tables["temp1"].DefaultView;
        }调用方法: 将你的DataGrid改名dg
string sql="SELECT       (case when a.colorder=1 then d.name else '' end)表名,      a.colorder 字段序号,      a.name 字段名,      (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,      (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 '√' else '' end) 主键,      b.name 类型,      a.length 占用字节数,      COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,      isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,      (case when a.isnullable=1 then '√'else '' end) 允许空,      isnull(e.text,'') 默认值,      isnull(g.[value],'') AS 字段说明    
FROM  syscolumns  a left join systypes b on  a.xtype=b.xusertypeinner join sysobjects d on a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'left join syscomments eon a.cdefault=e.idleft join sysproperties gon a.id=g.id AND a.colid = g.smallid  order by a.id,a.colorder";
Binding(sql);

解决方案 »

  1.   

    或者吧上面的sql写进存储过程里面
    在C#里调用
      

  2.   

    谢谢楼上的朋友。首先,我用的是ODBC。不是SqlClient。
    其次,我用ODBC的目的就是在不知道数据库具体是什么的情况小用。如果知道是SQL Server或Oracle那都简单了。
      

  3.   

    System.Data.Odbc.OdbcConnection Tree_Conn = new System.Data.Odbc.OdbcConnection(this.Dsn_Conns[i, 0]);
                        Tree_Conn.Open();
                        System.Data.DataSet tree_ds = new DataSet();
                        tree_ds.Tables.Add(Tree_Conn.GetSchema()库结构
                        tree_ds.Tables.Add(Tree_Conn.GetSchema("Tables"));//表
                        tree_ds.Tables.Add(Tree_Conn.GetSchema("Columns"));//表字段(包含表字段和试图字段。)
                        tree_ds.Tables.Add(Tree_Conn.GetSchema("Views"));//试图
                        tree_ds.Tables.Add(Tree_Conn.GetSchema("Procedures"));//存储过程
                        tree_ds.Tables.Add(Tree_Conn.GetSchema("ProcedureParameters"));//存储过程参数。
                        tree_ds.Tables.Add("Indexes",new string[] {null,null,"table_name"});//索引。需要table_name参数。
      

  4.   

    在Framework1.1上,没有GetSchema。