1

我正在寻找给定 msAccess 文件的所有表。以下是我所做的:

public override List<string> GetTables()
    {
        using (OleDbConnection con = new OleDbConnection(Path))
        {
            con.Open();
            DataTable schema = con.GetSchema("Columns");
            List<string> tables= new List<string>();
            foreach (DataRow row in schema.Rows)
            {
                tables.Add(row.Field<string>("TABLE_NAME"));
            }
            return tables;
        }
    }

但是,虽然返回了所有的表名,但似乎每个表名都返回了 10 次。为什么这样做?

4

2 回答 2

5

我认为您需要更改您的 con.GetSchema 调用以获取 Tables 而不是 Columns - 例如

DataTable schema = con.GetSchema("Tables");

看起来您正在获取数据库中所有列的列表,然后只使用结果中的表名字段,因此它会出现多次。

于 2013-05-31T19:55:57.320 回答
0

您还可以显示隐藏表和系统表以查看存储数据库中所有其他表的名称的表。您可以使用查询对象或在 vba 中使用 db 记录集来查询此表。

https://www.techonthenet.com/access/database/view_systables2007.php

于 2018-09-20T21:44:22.363 回答