OleDbSchemaGuid的应用

本文介绍了一种使用SQL和OleDb连接来获取SQL Server和Access数据库表结构的方法,并提供了一个简单的示例来展示如何通过OleDbSchemaGuid来获取表、列和类型的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   string ConStr;
   ConStr = "Provider=SQLOLEDB;data source=127.0.0.1;uid=sa;pwd=;database=KWDataBase";
   DataTable STable;
   DataTable SDTable;
   DataTable SFTypeTable;
   OleDbConnection OleDbCon = new OleDbConnection();
   OleDbCon.ConnectionString = ConStr;   
   OleDbCon.Open();
   OleDbCommand OleDbCmd = new OleDbCommand(Sql,OleDbCon);
   //Object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","TABLE_TYPE"}
   STable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new Object[]{"KWDataBase","dbo","member",null}); 
   //Object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"}
   SDTable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new Object[]{"KWDataBase","dbo","member",null});
   SFTypeTable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Provider_Types,new Object[]{}); 
   this.DataGrid1.DataSource = STable;
   this.DataGrid1.DataBind();
   this.DataGrid2.DataSource = SDTable;
   this.DataGrid2.DataBind();
   this.DataGrid3.DataSource = SFTypeTable;
   this.DataGrid3.DataBind();
   OleDbCon.Close();
Sql Server 取数据库结构不用向以上方法哪样麻烦,只用一条 SQL 语句就可以了

"select c.Name,b.name,a.* from dbo.syscolumns a
inner join dbo.sysobjects b on a.ID=b.ID
inner join dbo.systypes c on a.XTYPE=c.XTYPE
where b.xtype='U'"

但如果取 Access 数据库表结构也只能用OleDbSchemaGuid了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值