ПОНЯТНО О Visual Basic NET (том 3)

         

Создаем соединение в коде


Для того, чтобы выполнить над базой данных какое-нибудь действие в соответствии с описанными в предыдущем подразделе SQL-операторами, совсем не обязательно пользоваться адаптером и объектом DataSet. Достаточно только соединения. Создайте простенький проект из текстового поля, в которое вы будете записывать SQL-оператор, и кнопки, по которой он будет исполняться. Я покажу вам, как создать соединение не в режиме проектирования, а в коде, так что в режиме проектирования вам не нужно будет создавать вообще ничего, кроме текстового поля и кнопки.

Вот весь код вашего нового проекта:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Соединение As New OleDb.OleDbConnection  _

("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Базы\Контакт.mdb")

        Соединение.Open()

        Dim Команда As New OleDb.OleDbCommand(TextBox1.Text, Соединение)

        Команда.ExecuteNonQuery()

        Соединение.Close()

End Sub

Пояснения: Первая строка процедуры создает объект Соединение класса OleDbConnection. Для создания соединения нужно знать провайдера (Provider) базы данных и ее источник (Data Source) – файл, в котором база данных располагается. Единственный параметр конструктора представляет собой строку, в которой через точку с запятой даются ответы на оба эти вопроса. Чтобы вы не пропустили знаки препинания, напишу эту строку увеличенным шрифтом:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Базы\Контакт.mdb

Вторая строка открывает соединение. Теперь им можно пользоваться.



Третья строка нам знакома из 24.5.7. Она создает команду на выполнение некоторого действия над базой данных. Первый параметр конструктора (TextBox1.Text) указывает, откуда брать текст команды. Второй параметр указывает соединение.

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

Поскольку после выполнения команды поддерживать соединение больше нет смысла, его следует закрыть, что и делает последняя строка.


Запустив проект, введя в текстовое поле один из вышеописанных SQL-операторов (я не имею в виду оператор SELECT) и нажав кнопку, вы выполняете задуманное действие над базой данных.

Для наблюдения за результатами действия SQL-операторов вы можете запустить Access или создать проект типа одного из созданных нами ранее, соединив его  с той же базой, с которой мы соединим новый проект.

Кстати, удобнее всего не создавать отдельный проект, как мы с вами только-что сделали, а дополнить проект с Рис. 24.32 одной кнопкой и к ней процедурой, приведенной выше. Тогда результаты выполнения SQL-оператора мы сможем наблюдать в верхней сетке. Получается, что в проекте мы будем иметь два соединения с одной базой данных: одно – OleDbConnection1, созданное в режиме проектирования, а другое – Соединение, созданное в коде. Однако, одно другому не мешает. Впрочем, мы можем сэкономить и воспользоваться уже имеющимся OleDbConnection1, записав процедуру кнопки по-другому:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        OleDbConnection1.Open()

        Dim Команда As New OleDb.OleDbCommand(TextBox1.Text, OleDbConnection1)

        Команда.ExecuteNonQuery()

        OleDbConnection1.Close()

End Sub

Заключение. Я дал вам понятие о работе в VB с базами данных. Теперь вы сможете использовать их в своих проектах. Например, создавая игру, вы можете предусмотреть показ таблицы лучших результатов за всю историю игры на этом компьютере. Для этого вы создаете базу данных с таблицей из двух полей: имени игрока (ключевое поле) и его результата. В момент окончания очередной игры в таблицу добавляется очередная запись. Таблица показывается в сетке всегда отсортированной по результату. Если таблица становится слишком длинной, худшие результаты удаляются.

Я совсем ничего не рассказал о работе со связанными таблицами и о запросах на выборку из связанных таблиц. Это достаточно хорошо рассказано в книге Долженкова (см. Список литературы).

Работа с базами данных – чрезвычайно широкая и глубокая область программирования. Тех, кто хочет достичь успехов в этой области, отсылаю к многочисленным книжкам, ей посвященным.


Содержание раздела