Главная » Языки программирования и собственно написание компьютерных программ

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

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

Для этого запустим VB2010 и закажем новый проект New Project. Экранная форма нам в данном случае не нужна, поэтому выбираем, как и в некоторых предыдущих примерах, шаблон Console Application. Для того чтобы во время выполнения данной программы не видеть черного DOS-экрана, в меню Project выберем команду ConsoleApplication1 Properties и на вкладке Application укажем в раскрывающемся списке Application type тип приложения Windows Forms Application. Чтобы иметь доступ к функции MessageBox.Show (хотя можем воспользоваться MsgBox), добавим к проекту ссылку на динамическую библиотеку Forms.dll. Для этого выберем» пункты меню Project | Add Reference и на вкладке .NET дважды щелкнем на ссылке на библиотеку System.Windows.Forms.dll. Отметим, что при этом на вкладке, открываемой командой Project | Properties | References, появилась соответствующая этой библиотеке ссылка. Далее напишем следующий программный код:

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

‘ Программа удаляет запись из таблицы БД с использованием

‘ SQL-запроса и объекта Command
Imports System.Data.OleDb
Imports System.Windows.Forms
ModuleModule1
   Sub Main()
       ‘ Создаем объект Connection и передаем
       ‘ ему строку соединения:
       Dim CONNECTION AsNew OleDb.OleDbConnection("Data Source=""C:\vic.mdb"";User ID=Admin;Provider=""Microsoft.Jet.OLEDB.4.0"";")
       CONNECTION.Open()
       ‘ Создаем объект Command передавая ему SQL-команду:
       Dim COMMAND AsNew System.Data.OleDb.OleDbCommand("Delete * From (БД телефонов) Where ФИО Like ‘Vi%’", CONNECTION)
       ‘ Выполнение команды SQL:
       Dim i AsInteger = COMMAND.ExecuteNonQuery()
       ‘ i — количество удаленных записей
       If i > 0 ThenMessageBox.Show("Записи, содержащие в поле ФИО фрагмент ‘Vi*’, удалены")
       If i = 0 ThenMessageBox.Show("Запись, содержащая в поле ФИО фрагмент ‘Vi*’, не найдена")
        CONNECTION.Close()
   End Sub
EndModule

Здесь при создании объекта Command задан SQL-запрос на удаление (Delete) всех записей, содержащий в поле ФИО фрагмент текста «Vi*», причем строчные и прописные буквы являются равнозначными, т. е. будут удалены записи, содержащие «Vi*», «vi*», «VI*» и прочие комбинации. Таким образом, поиск записей ведется без учета регистра (case-insensitive search).

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

Добавить комментарий

Ваш комментарий появится после модерации.