ADO.NET程序设计实现获取数据库架构信息

开发 后端
文章利用ADO.NET程序设计以SqlServer的Northwind数据库为例,在查看按钮事件中进行了处理案例分析,希望对大家有帮助。

ADO.NET程序设计还是比较常用的,于是我研究了一下ADO.NET程序设计,在这里拿出来和大家分享一下,希望对大家有用。在ADO.NET的对象模型的该对象充当了与数据源之间的连接,通过Connection对象来连接数据库或者从数据库断开以释放宝贵的资源。这里我们需要用到的是OleDbConnection对象的GetOleDbSchemaTable方法,定义如下:

  1. publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions); 

#T#方法返回一个DataTable对象;第一个参数是OleDbSchemaGuid的枚举值,是用来指定架构信息类型,可以根据某一个值来决定所需的架构类型,如表、列、视图等,具体可以参考MSDN;第二个参数为Restrictions的参数,作为一个oject数组数据类型,起到过滤的作用,如果把第二个参数设置为null,那就返回指定的OleDbSchemaGuid枚举的所有信息了。下面用示例程序来进行相关说明,示例界面ADO.NET程序设计如下:这里以SqlServer的Northwind数据库为例,在查看按钮事件中进行了如下处理:

  1. privatevoidbuttonOK_Click(objectsender,System.EventArgse)  
  2. {  
  3. this.dataGridSchema.DataSource=GetSqlDbSchemaUsingOleDbConnection(this.textBoxConnString.Text.Trim());  

通过文本框把连接字符串传入GetSqlDbSchemaUsingOleDbConnection函数,由OleDbConnection对象来连接数据库,并获取构架信息,

  1. privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. myConn.Open();  
  5. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);  
  6. myConn.Close();  
  7. returntable1;  

上面的函数返回数据库的所有字段,下面来看看如何通过Restrictions参数来过滤信息;参数数据可以定义为

  1. object[]restrictions=  
  2. newobject[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"}; 

具体可参考MSDN文档。对上面函数进行修改,我们只获取Northwind数据库Customers表的信息:

  1. privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. object[]restrictions=newobject[]{"Northwind","dbo","Customers",null};  
  5. myConn.Open();  
  6. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrictions);  
  7. myConn.Close();  
  8. returntable1;  

另外对于Access数据库架构信息的获取也可以通过上面的方法来完成,

  1. privateDataTableGetMdbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. myConn.Open();  
  5. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);  
  6. myConn.Close();  
  7. returntable1;  

前面的界面图示就是执行结果,这里我用的是Access2003。

责任编辑:田树 来源: 博客
相关推荐

2009-11-13 16:35:39

ADO.NET程序设计

2009-11-11 10:06:12

ADO.NET设计

2011-10-09 13:38:14

数据库

2009-11-13 10:53:54

ADO.NET Dat

2009-12-22 09:59:06

ADO.NET数据库

2009-12-31 09:18:23

ADO.NET对象模型

2011-03-04 11:08:46

ADO.NET数据库

2009-11-03 14:46:47

ADO.NET数据库

2011-05-20 13:11:22

ADO.NET

2011-07-21 09:07:16

ADO.NET

2009-11-13 16:49:48

2009-12-18 17:06:37

ADO.NET 数据库

2009-12-28 10:09:10

ADO.NET连接

2009-11-11 16:15:04

ADO.NET操纵数据

2009-12-23 17:59:46

ADO.NET数据库

2009-12-22 13:34:48

ADO.Net Tea

2009-12-24 15:11:47

ADO.NET数据库连

2009-12-21 16:36:08

ADO.Net数据库

2009-11-12 16:33:26

ADO.NET数据库

2009-12-23 15:53:36

ADO.NET访问数据
点赞
收藏

51CTO技术栈公众号