我希望所有的表都有一个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次。为什么要这么做?

最佳答案

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

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

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

关于c# - 获取MS Access表名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16864790/

10-15 09:42