Получить описание столбца базы данных MSAccess - PullRequest
1 голос
/ 12 августа 2011

У меня есть база данных 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 ]

2 голосов
/ 12 августа 2011

Вот что я в итоге сделал:

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 для DDL и безопасности , который является компонентом ActiveX (находится на вкладке COM при добавлении ссылок в Visual Studio).

Фрагменты кода хороши, но если вы опустите справочную информацию, некоторые люди застрянут;)

1 голос
/ 12 августа 2011

Используя каталог ADOX, вы можете посмотреть свойство поля Description в VBA:

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")

копия из Как я могу получить описания столбцов из базы данных доступа в C #?

...