Microsoft Access DB + C#: как получить имена всех столбцов из таблицы (Для любой таблицы в БД)?


Сегодня тут задали вопрос… как получить имена всех столбцов из таблицы? Ну что ж, все просто. Код для этого приложения я практически полностью взял из старого приложения, так как мне тоже надо было получать имена таблиц. Как это работает, написанно там.

Интерфейс простой

2 кнопки, Combobox (для названия таблиц в базе) и listbox для отображения названий колонок.

Код первой кнопки полностью повторяет старое приложение:

comboBox1.Items.Clear();
            if (openDBDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                OleDbConnection dbCon = new OleDbConnection(
            @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openDBDialog.FileName);
                dbCon.Open();
                DataTable tbls = dbCon.GetSchema("Tables", new string[] { null, null, null, "TABLE" }); //список всех таблиц
                foreach (DataRow row in tbls.Rows)
                {
                    string TableName = row["TABLE_NAME"].ToString();
                    comboBox1.Items.Add(TableName);
                }
                dbCon.Close();
            }

А вот во второй кнопке код частично новый:

OleDbConnection dbCon = new OleDbConnection(
 @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openDBDialog.FileName);
            dbCon.Open();
            OleDbDataAdapter dbAdapter1 = new OleDbDataAdapter(@"SELECT * FROM " + comboBox1.SelectedItem, dbCon);
            DataTable dataTable = new DataTable();
            dbAdapter1.Fill(dataTable);
            dbCon.Close();
            foreach (var item in dataTable.Columns)
            {
                listBox1.Items.Add(item.ToString());
            }

Здесь делается запрос к таблице, потом создается объект для данных, потом этот объект наполняется данными, которые вернул запрос. После всего этого соединение с базой данных закрывается.

А далее циклом foreach пробегаем по dataTable.Columns и записываем в listBox1 тестовое представление от колонок :)

Получены колонки

Как обычно исходники можно скачать здесь.
На этот раз у меня стоит Visual Studio 2012, так что проект сделан в ней

Метки: , , ,

You may also like

10 комментариев

LEAVE A COMMENT

Яндекс.Метрика