Сегодня тут задали вопрос… как получить имена всех столбцов из таблицы? Ну что ж, все просто. Код для этого приложения я практически полностью взял из старого приложения, так как мне тоже надо было получать имена таблиц. Как это работает, написанно там.
Интерфейс простой
2 кнопки, Combobox (для названия таблиц в базе) и listbox для отображения названий колонок.
Код первой кнопки полностью повторяет старое приложение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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(); } |
А вот во второй кнопке код частично новый:
1 2 3 4 5 6 7 8 9 10 11 |
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, так что проект сделан в ней
Премного благодарен за труд!
Пожалуйста =)
Спасибо!
Предлагаю такой вариант:
Да, спасибо!
Хороший вариант :)
Спасибо большое! Очень помогли!)
Всегда пожалуйста! Рад помочь!
А как можно просмотреть ячейки таблицы?
Вопрос не понятен.
Привет, у меня возникла немного другая задача, я хочу вывести отдельный столбец в лист бокс. Например как вывести список столбцов в лист бокс я понял. А вот со строками не получается, собственно в коде я изменил Columns на Rows и листбокс заполняется строками System.Data.Rows