【问题标题】:Getting MsAccess table names获取 MsAccess 表名
【发布时间】:2013-05-31 19:46:59
【问题描述】:

我正在寻找给定 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 次。为什么要这样做?

【问题讨论】:

    标签: c# database oledb


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-23
        相关资源
        最近更新 更多