一、OleDbConnection的GetOleDbSchemaTable方法
在Ado.net的对象模型的该对象充当了与数据源之间的连接,通过Connection对象来连接数据库或者从数据库断开以释放宝贵的资源。这里我们需要用到的是OleDbConnection对象的GetOleDbSchemaTable 方法,
定义如下:
public DataTable GetOleDbSchemaTable( Guid schema,object[] restrictions);
方法返回一个DataTable对象;
第一个参数是OleDbSchemaGuid的枚举值,是用来指定架构信息类型,可以根据某一个值来决定所需的架构类型,如表、列、视图等,具体可以参考MSDN;
第二个参数为Restrictions的参数,作为一个oject数组数据类型,起到过滤的作用,如果把第二个参数设置为null,那就返回指定的OleDbSchemaGuid枚举的所有信息了。
整个窗体包括:
一个TextBox,用来输入数据库连接字符串;
一个DataGrid,用来显示架构信息;
查看按钮,点击获取架构信息。
这里以SqlServer 的Northwind数据库为例,在查看按钮事件中进行了如下处理:
private void buttonOK_Click(object sender, System.EventArgs e)
{
this.dataGridSchema.DataSource = GetSqlDbSchemaUsingOleDbConnection (this.textBoxConnString.Text.Trim());
}
通过文本框把连接字符串传入GetSqlDbSchemaUsingOleDbConnection函数,由OleDbConnection对象来连接数据库,并获取构架信息,
private DataTable GetSqlDbSchemaUsingOleDbConnection(string connString)
{
OleDbConnection myConn = new OleDbConnection(connString);
myConn.Open();
DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);
myConn.Close();
return table1;
}
上面的函数返回数据库的所有字段,下面来看看如何通过Restrictions参数来过滤信息;
参数数据可以定义为
object[] restrictions =
new object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"};
具体可参考MSDN文档。
对上面函数进行修改,我们只获取Northwind 数据库Customers表的信息:
private DataTable GetSqlDbSchemaUsingOleDbConnection(string connString)
{
OleDbConnection myConn = new OleDbConnection(connString);
object [] restrictions = new object[]{"Northwind","dbo","Customers",null};
myConn.Open();
DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrictions);
本新闻共3页,当前在第1页 1 2 3
