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


Запросы на выборку из таблицы, создаваемые в режиме работы - часть 2


Щелкните ОК. Вы увидите, что в ваш проект добавился еще один значок – DataSet21. Установим значение свойства DataSource второй сетки в DataSet21.Книги. Теперь DataGrid2 будет автоматически отражать содержимое таблицы Книги, поставляемое в  DataSet2 адаптером OleDbDataAdapter2. Не перепутайте все эти единицы и двойки.

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

Для обеспечения работы нижней части проекта достаточно написать короткую процедуру обработки нажатия на третью кнопку:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        DataSet21.Книги.Clear()

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

        OleDbDataAdapter2.SelectCommand = Команда

        OleDbDataAdapter2.Fill(DataSet21)

End Sub

Пояснения: Первая строка процедуры очищает DataSet2 (а значит и DataGrid2) от прошлых данных, освобождая место для данных требуемой выборки.

Вторая строка создает объект Команда класса OleDbCommand.  Это не что иное, как команда на выполнение некоторого действия над базой данных. Первый параметр конструктора (TextBox1.Text) указывает, откуда брать текст команды (у нас это SQL-оператор, заранее записанный нами в текстовом поле TextBox1). Второй параметр конструктора (OleDbConnection1) указывает, куда направлять команду, чтобы она делала там свое дело.

Третья строка процедуры указывает уже персонально адаптеру, какой командой (Команда) ему пользоваться для выборки (SelectCommand) данных из исходной базы данных.

Настроенный таким образом адаптер в четвертой строке заполняет DataSet2 из базы данных.

Запустите проект. Введите текст SQL-оператора в текстовое поле, нажмите кнопку и наблюдайте результаты запроса. Чуть измените оператор, снова нажмите кнопку и снова наблюдайте результаты запроса. И так далее. Проект готов.

Вам может показаться не очень «круто» – заставлять пользователя самому записывать текст SQL-оператора. Ну что ж, вы можете поступить, как поступили создатели Access или Excel, или хотя бы Query Builder (см. Рис. 24.31), которые предлагают пользователю выбирать параметры выборки из разворачивающихся списков или записывать простейшие логические выражения фильтрации. Вы тоже можете организовать массивы списков и маленьких текстовых полей по числу столбцов таблицы. Вам останется только сконструировать согласно выбору пользователя текст SQL-оператора, как это делает Query Builder.




Начало  Назад  Вперед



Книжный магазин