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




Одно из основных четырех действий над данными в БД (select, insert,

update и Delete) является модификация (update, обновление) данных. Автор поставил задачу написать маленькую программу для обновления записей в таблице базы данных, но с большим удобством (гибкостью) управления про­граммным кодом.

Рассматриваемая в данном примере программа имеет форму, сетку данных DataGridView, в которую из базы данных читается таблица при нажатии кнопки Читать из БД. Пользователь имеет возможность редактировать данные в этой таблице, после чего, нажав кнопку Сохранить в БД, данные в базе данных будут модифицированы, т. е. заменены новыми.

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

Вначале импортируем (imports) Пространство имен System.Data.OleDb, ЭТО

обеспечит более короткие объявления объектов и манипулирования ими. Да­лее, как видно, мы имеем три процедуры обработки событий: загрузки фор­мы, щелчок на кнопке Читать из БД и щелчок на кнопке Сохранить в БД.

Чтобы объекты DataSet, DataAdapter, Connection, CommandBuilder И Command

были видны в этих трех процедурах, объявляем эти объекты внешними внут­ри класса Forml.

При программировании чтения из базы данных на сетку DataGridviewi мы использовали объект CommandBuilder для демонстрации возможности чтения данных с помощью этого объекта, хотя могли бы организовать чтение из ба­зы данных на сетку DataGridviewi так, как это было показано в предыдущих программах. Фрагмент работы программы после чтения из базы данных представлен на рис. 9.17.

Рис. 9.17. Фрагмент работы программы обновления данных

Представляет интерес программирование модификации записей базы данных. Эта возможность программирована при обработке события "щелчок мышью

на кнопке" Сохранить в БД. Здесь свойству CommandText присвоено значение текста SQL-запроса. В качестве заменителей параметров используются во­просительные знаки. Как видно, в данном SQL-запросе имеют место три во­просительных знака. Этим трем вопросительным знакам соответствуют три параметра, которые должны указываться именно в порядке следования во­просительных знаков. Эти параметры задаем с использованием метода

COMMAND. Parameters.Add. Здесь указываем ИМЯ ПОЛЯ (например, "Номер телефо­на"), тип, длину параметра и значение по умолчанию. Заметим, что третий параметр ("Номер п/п") задается как новый, поскольку он не должен подле-

жать редактированию со стороны пользователя, а устанавливаться автомати­чески, независимо от пользователя.

Далее в блоке Try...Catch вызываем непосредственно метод da.update, кото­рый возвращает количество (koi) обновленных записей. В случае неудачного обновления обрабатывается исключительная ситуация Exception, объект Exception обеспечивает соответствующее сообщение о недоразумении.

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

Пример 67. Удаление записей из таблицы БД с использованием SQL-запроса и объекта Command

Можно также удалять записи (строки из таблицы БД), формируя в программ­ном коде соответствующий SQL-запрос, передаваемый в объект Command. Именно объект Command обеспечивает привязку SQL-выражения к соеди­нению с базой данных. Напишем самый простой пример такой программы.

Для этого запустим VB2010 и закажем новый проект New Project. Экранная

форма нам в данном случае не нужна, поэтому выбираем, как и в некоторых предыдущих примерах, шаблон Console Application. Для того чтобы во вре­мя выполнения данной программы не видеть черного DOS-экрана, в меню Project выберем команду ConsoleApplicationl Properties и на вкладке Application укажем в раскрывающемся списке Application type тип прило­жения Windows Forms Application. Чтобы иметь доступ к функции

MessageBox.show (хотя можем воспользоваться MsgBox), добавим к проекту ссылку на динамическую библиотеку Forms.dll. Для этого выберем" пункты меню Project | Add Reference и на вкладке .NET дважды щелкнем на ссылке на библиотеку System.Windows.Forms.dll. Отметим, что при этом на вклад­ке, открываемой командой Project | Properties | References, появилась соот­ветствующая этой библиотеке ссылка.

Далее напишем следующий программный код (листинг 9.8).

 

Здесь при создании объекта command задан SQL-запрос на удаление (Delete)

всех записей, содержащий в поле ФИО фрагмент текста "Vi*", причем строчные и прописные буквы являются равнозначными, т. е. будут удалены записи, содержащие "vi*", "vi*M, "vi*" и прочие комбинации. Таким образом, поиск записей ведется без учета регистра (case-insensitive search).

Замечу, что здесь для выполнения команды SQL использован метод ExecuteNonQuery. Он возвращает в переменную i количество удаленных запи­сей. Если i = о, значит, записи с таким контекстом не найдены и ни одна запись не удалена.

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



Поделиться:




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

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


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