我有一个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中使用“设计视图”时可以查看)。
有没有简单的方法来获取“描述”信息?
答案 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#?
复制