我正在使用C#编写与Access数据库相关的代码...
我可以使用以下代码获取我的Access数据库中的所有表:
DataTable dataTbl;
DataView dvCols;
DataRowView drvCols;
...
dataTbl = m_connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new Object[] { null, null, null, "TABLE" });
dvCols = new DataView(dataTbl);
for (int j = 0; j < dvCols.Count; j++)
{
drvCols = dvCols[j];
tableName = drvCols.Row["TABLE_NAME"].ToString();
// ...
}
问题在于此代码按字母顺序获取表名。现在,如果我要阅读特定表中的列,我可以使用序号位置进行排序。
dvCols.Sort = "ORDINAL_POSITION";
然而,使用表格是不可能的,毕竟没有顺序位置。我的表格之间有关系,例如,表A与表B存在一对多的关系,表B与表C也存在一对多的关系,以此类推...因此我需要按照这个顺序获取表格名称,例如,先是A,然后是B,然后是C。
有什么方法可以做到这一点吗?
我是否需要检查主键和外键,并自己找出这些信息?