码迷,mamicode.com
首页 > 数据库 > 详细

ADO.NET中DbConnection.GetSchema方法的使用总结

时间:2015-04-18 01:11:37      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

 

此方法获取数据库的结构,所以可以用它获取数据库中所有的表

先上代码

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Jet OLEDB:Database Password=Yldb666;Data Source=" + @"test.mdb;";
conn = new OleDbConnection(connectionString);
conn.Open();
System.Data.DataTable schema = conn.GetSchema();
this.dataGridView1.DataSource = schema;
conn.Close();
conn.Dispose();

结果如下图:

技术分享

 下一步:获取所有的表

 

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Jet OLEDB:Database Password=Yldb666;Data Source=" + @"Yldb.mdb;";
conn = new OleDbConnection(connectionString);
conn.Open();
System.Data.DataTable schema = conn.GetSchema("Tables");
this.dataGridView1.DataSource = schema;
conn.Close();
conn.Dispose();

结果如下图:

技术分享

 

此时已经获取到了所有的表,那么一般我们在实际开发中,只需要自己创建的数据库.所以这里就要过虑了.

先上代码

 

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Jet OLEDB:Database Password=Yldb666;Data Source=" + @"test.mdb;";
conn = new OleDbConnection(connectionString);
conn.Open();
System.Data.DataTable schema = conn.GetSchema("Tables", new string[] { null, null, null, "TABLE" });
this.dataGridView1.DataSource = schema;
conn.Close();
conn.Dispose();

 

结果如下:

技术分享

好了,进行过虑的数组为是 conn.GetSchema("Tables", new string[] { null, null, null, "TABLE" });

看第二图中,用conn.GetSchema("Tables");得到的数据中,前3列 与  new string[] { null, null, null, "TABLE" });前3个null 是对应的.

也就是说,过虑数组中第一个,对应结果列表的第一列,以此类推. 所以在第二图中,自己建的表的类型为"TABLE",所以 最后要写成

 new string[] { null, null, null, "TABLE" });  这样,过虑出来的数据,才是我们想要的.

 那么,其他数据库,也是这个样子的.测试数据库是Access 2000版  自己可以试一下.

OK.就到这里吧.

 

ADO.NET中DbConnection.GetSchema方法的使用总结

标签:

原文地址:http://www.cnblogs.com/yunfeng83/p/4436437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!