ADO.NET程序设计还是比较常用的,于是我研究了一下ADO.NET程序设计,在这里拿出来和大家分享一下,希望对大家有用。在ADO.NET的对象模型的该对象充当了与数据源之间的连接,通过Connection对象来连接数据库或者从数据库断开以释放宝贵的资源。这里我们需要用到的是OleDbConnection对象的GetOleDbSchemaTable方法,定义如下:
- publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions);
#T#方法返回一个DataTable对象;第一个参数是OleDbSchemaGuid的枚举值,是用来指定架构信息类型,可以根据某一个值来决定所需的架构类型,如表、列、视图等,具体可以参考MSDN;第二个参数为Restrictions的参数,作为一个oject数组数据类型,起到过滤的作用,如果把第二个参数设置为null,那就返回指定的OleDbSchemaGuid枚举的所有信息了。下面用示例程序来进行相关说明,示例界面ADO.NET程序设计如下:这里以SqlServer的Northwind数据库为例,在查看按钮事件中进行了如下处理:
- privatevoidbuttonOK_Click(objectsender,System.EventArgse)
- {
- this.dataGridSchema.DataSource=GetSqlDbSchemaUsingOleDbConnection(this.textBoxConnString.Text.Trim());
- }
通过文本框把连接字符串传入GetSqlDbSchemaUsingOleDbConnection函数,由OleDbConnection对象来连接数据库,并获取构架信息,
- privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)
- {
- OleDbConnectionmyConn=newOleDbConnection(connString);
- myConn.Open();
- DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);
- myConn.Close();
- returntable1;
- }
上面的函数返回数据库的所有字段,下面来看看如何通过Restrictions参数来过滤信息;参数数据可以定义为
- object[]restrictions=
- newobject[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"};
具体可参考MSDN文档。对上面函数进行修改,我们只获取Northwind数据库Customers表的信息:
- privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)
- {
- OleDbConnectionmyConn=newOleDbConnection(connString);
- object[]restrictions=newobject[]{"Northwind","dbo","Customers",null};
- myConn.Open();
- DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrictions);
- myConn.Close();
- returntable1;
- }
另外对于Access数据库架构信息的获取也可以通过上面的方法来完成,
- privateDataTableGetMdbSchemaUsingOleDbConnection(stringconnString)
- {
- OleDbConnectionmyConn=newOleDbConnection(connString);
- myConn.Open();
- DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);
- myConn.Close();
- returntable1;
- }
前面的界面图示就是执行结果,这里我用的是Access2003。