我希望获得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次。为什么这样做?
答案 0 :(得分:5)
我认为您需要更改con.GetSchema调用以获取表而不是列 - 例如。
DataTable schema = con.GetSchema("Tables");
看起来您正在获取数据库中所有列的列表,然后仅使用结果中的表名字段,因此它将多次出现。
答案 1 :(得分:0)
您还可以显示隐藏表和系统表,以查看存储数据库中所有其他表名称的表。您可以使用查询对象查询该表,也可以使用db记录集在vba中查询该表。
https://www.techonthenet.com/access/database/view_systables2007.php