使用C#在MS Access中查找表

时间:2009-12-07 09:26:56

标签: c# ms-access

是否可以使用c#?

确定特定数据库中MS Access中的表及其列

任何人都可以在这个问题上指导我吗?

2 个答案:

答案 0 :(得分:2)

道歉,SQL Server有偏见并发布了答案,但没有真正正确地阅读你的问题!

这是一个solution,用于从MS Access数据库中读取表名。这是同样的想法,即查询Db架构。

String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
OleDbConnection con = new OleDbConnection(connect);
con.Open();  
Console.WriteLine("Made the connection to the database");

Console.WriteLine("Information for each table contains:");
DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});

foreach(DataRow tableRow in tables.Rows)
{
    Console.WriteLine("Table Name: {0}", tableRow[0]);
    DataTable cols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[]{null,null, tableRow[0], null});
    foreach (DataRow colRow in cols.Rows)
    {
        Console.WriteLine("Column Name: {0}", colRow[0]);
    }
}

con.Close();

答案 1 :(得分:1)

根据您连接到ms-access fiele的方式,您可以通过不同方式读取表和列/字段名称:

  1. 使用OLEDB连接:您可以使用ADOX Objects集合并读取数据库中可用的表,列,索引等
  2. 使用ODBC连接,您可以列出MS-ACCESS系统表,在每个表上打开记录集,然后读取所有字段名称。可以使用以下SQL指令列出表:

    SELECT name FROM MSysObjects WHERE type = 1

  3. 在所有情况下,一旦通过记录集打开表,您就可以通过读取其字段名称 循环记录集对象的字段集合