检索MS Access数据库列说明

时间:2011-08-12 14:46:35

标签: c# database-schema ms-access-2003

我有一个MS Access 2002-2003数据库。我想知道是否有一种方法可以以编程方式检索列描述。我已经可以使用

获取列类型,名称等
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);

DataTable schemaTable = reader.GetSchemaTable();

foreach (DataRow myField in schemaTable.Rows)
{
   foreach (DataColumn myProperty in schemaTable.Columns)
   {
      // etc...
   }
}

但我无法访问“描述”信息(在MSAccess中使用“设计视图”时可以查看)。

有没有简单的方法来获取“描述”信息?

2 个答案:

答案 0 :(得分:2)

这是我最终做的事情:

string columnName = "myColumnName"

ADOX.Catalog cat = new ADOX.CatalogClass();
ADODB.Connection conn = new ADODB.Connection();
conn.Open(ConnectionString, null, null, 0);
cat.ActiveConnection = conn;
ADOX.Table mhs = cat.Tables["myTableName"];

columnDescription = mhs.Columns[columnName].Properties["Description"].Value.ToString();

conn.Close();

这很好用,除了我在找到要添加为引用的正确程序集时遇到了一些麻烦。我不得不添加对 adodb.dll (随.Net附带)的引用。我还必须添加对 Microsoft ADO Ext的引用。 2.8 for DDL and Security 这是一个ActiveX组件(在Visual Studio中添加引用时可在COM选项卡中找到)。

代码片段很棒,但如果省略参考信息,有些人会卡住;)

答案 1 :(得分:1)

使用ADOX目录,您可以在VBA中查看字段属性Description:

catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CurrentProject.FullName

Set tbl = catDB.Tables("New")

Set fld = tbl.Columns("Test")
Debug.Print fld.Properties("Description")

How can I retrieve column descriptions from an access database in C#?

复制