ADO.NET中DbConnection.GetSchema方法的使用總結


 

此方法獲取數據庫的結構,所以可以用它獲取數據庫中所有的表

先上代碼

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.就到這里吧.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM