【发布时间】:2017-03-12 12:10:34
【问题描述】:
我有一个使用 DSN 的 ODBC 连接,我正在尝试从中获取表和列(以便稍后进行操作),但它在早期阶段失败了。如果重要,该数据库是 FairCom C-tree (v 6.11):
OdbcConnection odbcConn = new OdbcConnection("DSN=Ctree;");
odbcConn.Open();
DataTable tblTables = odbcConn.GetSchema("Tables");
foreach (DataRow row in tblTables.Rows) //displays them one at a time (works)
MessageBox.Show(row["TABLE_NAME"].ToString());
DataTable tblColumns = odbcConn.GetSchema("Columns"); // (why is this empty?)
foreach (DataRow row in tblColumns.Rows) //lists nothing
MessageBox.Show(row["COLUMN_NAME"].ToString() + " : " + row["TABLE_NAME"].ToString());
问题是 getSchema("Tables") 工作得很好,所以我知道连接工作正常,驱动程序状态良好并且数据存在。那么为什么 getSchema("Columns") 失败了呢?我也知道数据库中有数据(数百列和数千行)。我很茫然。
想法?
【问题讨论】: