如何简单的用c#获取access中指定数据库中的所有表名!求代码。。。

2025-04-09 09:06:35
推荐回答(1个)
回答1:

//C#获取Access数据库中的所有表名和列名
   

string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=E:\report20100819\report20100819.mdb";    
OleDbConnection Conn = new OleDbConnection(ConnectionString);    
Conn.Open();
DataTable shemaTable = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });    
foreach (DataRow dr in shemaTable.Rows)    
{     
    Console.WriteLine(dr["TABLE_NAME"]);     
    DataTable columnTable = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, dr["TABLE_NAME"].ToString(), null });     
    foreach (DataRow dr2 in columnTable.Rows)     
    {         
        Console.WriteLine(dr2["COLUMN_NAME"]);     
    }    
}    
Conn.Close();

 

解释:
    “Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });”返回数据库中所有的数据表清单,返回值为DataTable。
    “Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, dr["TABLE_NAME"].ToString(), null });”返回指定数据表中所有的数据列清单,返回值为DataTable。