Поиск таблиц в MS Access с использованием C # - PullRequest
0 голосов
/ 07 декабря 2009

Можно ли определить таблицы и их столбцы в MS Access в конкретной базе данных с помощью c #?

Может ли кто-нибудь помочь мне в этом вопросе?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2009

Извинения, SQL Server предвзято и опубликовал этот ответ, фактически не прочитав ваш вопрос должным образом!

Вот решение для чтения имен таблиц из базы данных MS Access. Это та же идея, то есть запрос схемы Db.

Отрывок

String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
OleDbConnection con = new OleDbConnection(connect);
con.Open();  
Console.WriteLine("Made the connection to the database");

Console.WriteLine("Information for each table contains:");
DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});

foreach(DataRow tableRow in tables.Rows)
{
    Console.WriteLine("Table Name: {0}", tableRow[0]);
    DataTable cols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[]{null,null, tableRow[0], null});
    foreach (DataRow colRow in cols.Rows)
    {
        Console.WriteLine("Column Name: {0}", colRow[0]);
    }
}

con.Close();
1 голос
/ 07 декабря 2009

В зависимости от способа подключения к файлу ms-access, вы можете читать таблицы и имена столбцов / полей по-разному:

  1. При подключении к OLEDB: вы можете использовать коллекцию объектов ADOX и читать таблицы, столбцы, индексы и т. Д., Доступные в базе данных
  2. При подключении ODBC вы можете получить список системных таблиц MS-ACCESS, открыть набор записей для каждой таблицы и затем прочитать все имена полей. Таблицы могут быть перечислены с помощью следующей инструкции SQL:

    ВЫБРАТЬ имя ИЗ MSysObjects, ГДЕ тип = 1

  3. В любом случае, когда таблица открыта через набор записей, вы можете прочитать имена ее полей: зацикливание на коллекции полей объекта набора записей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...