Можно также удалять записи (строки из таблицы БД), формируя в программном коде соответствующий 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-запроса

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

‘ 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[/code]

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

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here