Пример 63. Добавление записей в таблицу базы данных MS Access




Совсем маленькую программу из предыдущего раздела можно использовать

для выполнения любого запроса к базе данных. Например, модифицируем

всего лишь одну строчку программного кода программы из предыдущего примера для добавления новой записи в таблицу БД. Для этого при создании экземпляра объекта command зададим SQL-запрос на вставку (insert) новой записи в таблицу БД.

Заметим, что в SQL-запросе мы сознательно обратились к таблице по имени [бд телефонов], т. е. со строчной буквы, хотя надо с прописной. Дело в том, что в именах таблиц следует точно указывать регистр символа, поскольку их поиск ведется с учетом регистра (case-sensitive search). Однако это не обяза­тельно при наличии только одной таблицы с таким именем, поскольку при этом используется поиск без учета регистра (case-insensitive search).

Свойству connection объекта command следует дать ссылку на объект

Connection:

COMMAND.Connection = CONNECTION

Причем для добавления записи в таблицу БД такая ссылка обязательна в от­личие от предыдущего примера, где мы создавали новую таблицу в сущест­вующей БД.

Программный код будет выглядеть так, как представлено в листинге 9.4.

Часто, отлаживая программный код на VB2010 (равно как и в других версиях VB), при работе с БД появляется необходимость проверки работы програм­мы, например, создалась ли таблица в БД, добавилась ли запись в таблице БД, правильно ли сформирован SQL-запрос. Не обязательно запускать MS Access, чтобы выполнить SQL-запрос или проверить правильность его синтаксиса. Это можно сделать в среде VB. Для этого в пункте меню View выбираем команду Server Explorer (Обозреватель баз данных), далее в списке подключений указываем полный путь к нужной БД. Затем, щелкая правой кнопкой мыши на значке нужной таблицы, в контекстном меню выбираем пункт Retrieve Data. При этом в панели инструментов (Toolbar) по­является значок SQL, после щелчка по этому значку (или нажатия комбина­ции клавиш <Ctrl>+<3>) получим окно SQL-запроса. В этом окне мы можем задавать SQL-запрос, а затем, например, щелкая правой кнопкой мыши, либо проверять его синтаксис, либо выполнять.

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

Пример 64. Чтение всех записей из таблицы БД с помощью объектов Command, DataReader и элемента управления DataGridView

Покажем, как легко, малой кровью, можно вывести таблицу базы данных на элемент управления DataGridView (сетка данных, т. е. таблица данных) с использованием тех же объектов из предыдущей программы command и DataReader. Замечу, что в предыдущих версиях VB, в частности VB.NET, элементом управления для вывода данных на сетку был DataGrid с похожи­ми свойствами и методами.

Для решения этой задачи запустим VB2010, закажем новый проект New Project шаблона Windows Forms Application. Из панели Toolbox добавим в

проектируемую форму элемент управления DataGridView и растянем его на

всю форму. При обработке события загрузки формы FormiLoad напишем программный код, представленный в листинге 9.5.

Как видно из программы, она очень похожа на предыдущую. После выполне­ния SQL-команды создаем объект DataTabie, который в конце программного кода (см. предпоследнюю строку) задаем как источник (DataSource) для сетки данных DataGridViewi. Заполняем "шапку" таблицы, т. е. названия колонок,

МеТОДОМ Add.

Далее, как и в предыдущей программе, в цикле while заполняем ячейки таб­лицы. Фрагмент работы программы показан на рис. 9.14.

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

Одно из ключевых преимуществ использования объекта DataReader — это его скорость и небольшое использование памяти. Однако применение цикличе­ского считывания данных сводит эти преимущества на нет.

Убедиться в работоспособности программы можно, открыв решение DataReaderBD2.sIn в папке DataReaderBD2.

 

Рис. 9.14. Отображение таблицы базы данных на элементе DataGridView

Пример 65. Чтение данных из БД в сетку данных DataGridView с использованием объектов Command, Adapter и DataSet

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

DataGridViewl.DataSource = DATASET

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

Далее при обработке события загрузки формы FormiLoad пишем программ­ный код, представленный в листинге 9.6.

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

Как видно из текста программы, вначале создаем объект connection, переда­вая строку подключения. Затем, создавая объект command, задаем SQL-команду выбора всех записей из таблицы БД телефонов. Здесь мы можем задать любую SQL-команду, в комментарии приведен пример такой команды, которая содержит select и like: выбрать из таблицы БД телефонов только

записи, в которых поле ФИО начинается на "м". Оператор like используется для поиска по шаблону (pattern matching) вместе с символами универсальной

подстановки (метасимволами) "звездочка" (*) и "знак вопроса" (?). Строка шаблона заключена в одинарные кавычки. Заметим также, что большинство баз данных использует символ % вместо значка * в LiKE-выражениях.

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

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

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: