2016-02-01 2 views
0

На самом деле я пытаюсь подключить мое приложение для интеллектуального анализа данных winform для доступа к файлам базы данных через открытое диалоговое окно при запуске приложения. Поскольку я пытаюсь подключиться к любому неизвестному файлу базы данных (mdb/accdb), поэтому я не знаю о его именах таблиц. Но для подключения базы данных к datagridview вам необходимо предоставить SQL-запрос как команду. Мой вопрос в том, что есть ли способ, с помощью которого я могу загружать все данные (записи) в любой файл базы данных подключенного доступа без указания/знания имен таблиц файла доступа db.Отображение всех данных в файле базы данных доступа в datagridview без знания имен таблиц

спасибо

+0

Что доступа к данным технологии вы используете? –

+0

Я использую OLE DB –

+0

выглядит как дубликат http://stackoverflow.com/questions/1699897/retrieve-list-of-tables-in-ms-access-file –

ответ

1

Вы можете сделать, это сначала получить или перечислить имена таблиц. Как пояснил г-н Хайден на своем блоге http://davidhayden.com/blog/dave/archive/2006/10/01/GetListOfTablesInMicrosoftAccessUsingGetSchema.aspx

// Microsoft Access provider factory 
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); 

DataTable userTables = null; 
using (DbConnection connection = factory.CreateConnection()) 
{ 
    // c:\test\test.mdb 
    connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\test\\test.mdb"; 
    // We only want user tables, not system tables 
    string[] restrictions = new string[4]; 
    restrictions[3] = "Table"; 

    connection.Open(); 

    // Get list of user tables 
    userTables = connection.GetSchema("Tables", restrictions); 
} 

List<string> tableNames = new List<string>(); 
for (int i=0; i < userTables.Rows.Count; i++) 
tableNames.Add(userTables.Rows[i][2].ToString()); 

Retrieve List of Tables in MS Access File

+0

ok спасибо, но как я могу использовать эти таблицы в SQL-запросе, например SELECT * FROM _____; для загрузки данных из всей этой таблицы в datagridview –

+0

Имена таблиц хранятся в списке «tablesNames». Все, что вам нужно сделать, это получить его. for (int i = 0; i

+0

Нет, на самом деле я хочу загрузить все данные таблицы в единый файл данных –

Смежные вопросы