Чтение данных из БД в сетку данных datagridview с использованием объектов классов Command, Adapter и dataset 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Чтение данных из БД в сетку данных datagridview с использованием объектов классов Command, Adapter и dataset



Рассмотрим пример чтения таблицы с помощью объекта Adapter из базы дан­ных посредством выбора нужных данных и передачи их объекту DataSet. Очень удобно прочитать таблицу, записанную в DataSet, используя элемент управления DataGridView (сетка данных, то есть таблица данных), указав в качестве источника данных для сетки DataGridView объект класса DataSet.

Поскольку нам нужен элемент управления DataGridView, мы создаем новый про­ект с экранной формой. Для этого, как обычно, запустим Visual Studio 2010 и в окне New Project выберем в среде CLR узла Visual C++ приложение шаблона Windows Forms Application Visual C++. Из панели Toolbox добавляем в форму элемент управления DataGridView и растягиваем его на всю форму, как показано на рис. 12.

Рис. 12. Проектирование экранной формы

 

Далее пишем программный код, представленный в листинге 7.

Листинг 7. Чтение данных из БД в сетку данных DataGridView

//...............

// Программный код, расположенный выше, создан средой Visual Studio

// автоматически, поэтому автором не приводится

this->ResumeLayout(false);

}

#pragma endregion

// Программа читает из БД таблицу в сетку данных DataGridView

// с использованием объектов класса Command, Adapter и DataSet

private: System::

Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

this->Text = "Чтение таблицы из БД:";

auto Подключение = gcnew OleDb::OleDbConnection(

"Data Source=\"C:\\vic.mdb\";User " + "ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");

Подключение->Open();

auto Команда = gcnew OleDb::OleDbCommand(

"Select * From [БД телефонов]", Подключение);

// Выбираем из таблицы только те записи, поле ФИО которых

// начинается на букву "М":

// auto Команда =

// gcnew OleDb::OleDbCommand("SELECT * FRO" +

// "M [БД телефонов] WHERE (фио LIKE ‘м%’)", Подключение);

// Создаем объект класса Adapter и выполняем SQL-запрос

auto Адаптер = gcnew OleDb::OleDbDataAdapter(Команда);

// Создаем объект класса DataSet

auto НаборДанных = gcnew DataSet();

// Заполняем DataSet результатом SQL-запроса

Адаптер->Fill(НаборДанных, "БД телефонов");

// Содержимое DataSet в виде строки XML для отладки:

auto СтрокаXML = НаборДанных->GetXml();

// Указываем источник данных для сетки данных:

dataGridView1->DataSource = НаборДанных;

// Указываем имя таблицы в наборе данных:

dataGridView1->DataMember = "БД телефонов";

Подключение->Close();

}

};

}

 

Как видно из текста программы, вначале мы создали объект класса Connection, передавая строку подключения. Затем, создавая объект класса Command, задаем SQL-команду выбора всех записей из таблицы БД телефонов. Здесь мы можем задать любую SQL-команду. В комментарии приведен пример такой команды, которая содержит SELECT и LIKE, в которой предлагается выбрать из таблицы БД телефонов только записи, в которых поле ФИО начинается на «м». Оператор LIKE используется для поиска по шаблону (pattern matching) вместе с символами уни­версальной подстановки (метасимволами) «звездочка» (*) и «знак вопроса» (?). Строка шаблона заключена в апострофы. Заметим также, что большинство баз данных использует символ % вместо значка * в LIKE-выражениях.

Далее при создании объекта класса Adapter выполняем SQL-команду и при выполнении метода Fill заполняем объект класса DataSet таблицей, полученной в результате SQL-запроса. Затем указываем в качестве источника данных для сетки данных dataGridView1 объект класса DataSet. Этого оказывается достаточным для вывода на экран результатов SQL-запроса (рис. 13).

Так же как и при использовании объекта класса DataReader в предыдущем при­мере, в полученной таблице мы можем сортировать записи по любой из колонок. Можем редактировать (изменять) содержимое ячеек, но в базу данных эти изме­нения не попадут (сохранения не произойдет).

Рис. 13. Вывод результата SQL-запроса

Заметим, что здесь с помощью визуального проектирования выполнено только перетаскивание в форму сетки данных DataGridView, остальное сделано программно, что обеспечивает большую гибкость программы.

Убедиться в работоспособности программы можно, открыв решение БдАдаптер- GridView.sln в папке БдАдаптерGridView.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-11; просмотров: 635; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.230.77.67 (0.005 с.)