//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);
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);
在C#里调用
其次,我用ODBC的目的就是在不知道数据库具体是什么的情况小用。如果知道是SQL Server或Oracle那都简单了。
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参数。