获取Ms Access表名称

时间:2013-05-31 19:46:59

标签: c# database oledb

我希望获得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次。为什么这样做?

2 个答案:

答案 0 :(得分:5)

我认为您需要更改con.GetSchema调用以获取表而不是列 - 例如。

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

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

答案 1 :(得分:0)

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

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