Введение в ADO.NET
Использование связанных элементов управления для отображения в форме информации из базы данных
Это самая интересная часть, но как это можно сделать? Вместо того чтобы воссоздавать в вашей форме таблицу базы данных Access, Visual Basic позволяет отображать только те поля и записи, которые вы хотите увидеть - можете предоставить вашим пользователям возможность увидеть всю таблицу информации из базы данных, а можете показать только те поля, которые вы хотите. В дополнение к этому можно предоставить механизм навигации так, что пользователи смогут просматривать все записи в базе данных, а можно отображать только конкретные записи. Наконец, можно позволить пользователям изменять или даже удалять информацию из базы данных, а можете ограничить их действия только просмотром записей из базы данных. Короче, Visual Basic позволяет создавать программу для просмотра базы данных - или внешний интерфейс - который предоставляет только ту информацию и те возможности доступа к данным, которые вы хотите предоставить своим пользователям. Хотя я этого и не говорил, большинство элементов управления на закладке Windows Forms окна Область элементов имеют встроенную возможность отображать в форме информацию из базы данных. В терминологии Visual Basic эти элементы управления обычно называются связанными элементами управления. Элемент управления называется связанным с источником данных, когда его свойство DataBindings содержит одно из полей набора данных. После установки соединения вы можете отображать информацию из базы данных с помощью методов и свойств, имеющихся в объектной модели ADO.NET. Элементы управления с закладки Windows Forms окна Области элементов, которые могут отображать информацию из базы данных, включают TextBox, ComboBox, ListBox, CheckBox, RadioButton, DataGrid и PictureBox.
В следующем упражнении показано, как для отображения информации из таблицы Instructors базы данных Students.mdb вы можете добавить в вашу форму объект текстового поля.
Использование объекта TextBox для отображения данных
- Используйте элемент управления TextBox и нарисуйте в центре формы объект текстового поля. Сделайте этот объект текстового поля достаточно широким, чтобы отображать имена и фамилии гипотетических инструкторов из базы данных Students.mdb.
- С помощью элемента управления Label слева от объекта текстового поля нарисуйте объект метки.
- Используя элемент управления Button, нарисуйте в нижнем левом углу формы одну кнопку.
-
Установите для объектов формы следующие свойства:
Объект Свойство Установка TextBox1 Name txtInstructor Text пустой (empty) Label1 Name lblInstructor Text Инструктор TextAlign MiddleRight Button1 Name btnLoad Text Загрузка данных Form1 Text Форма ADO Ваша форма должна выглядеть примерно так, как показано на рисунке вверху следующей страницы. Теперь вы должны связать поле Instructor с объектом текстового поля (txtInstructor).
- Щелкните на объекте текстового поля формы, а затем откройте окно Properties. Я рекомендую открепить окно Properties (Свойства) и расширить его так, чтобы было достаточно места для просмотра структуры таблицы Instructors базы данных.
- Откройте категорию DataBindings, щелкните на свойстве Text, а затем щелкните на стрелке раскрывающегося списка. Окно Properties (Свойства) отобразит список источников данных, с которыми вы можете связать ваше текстовое поле. Если вы выполнили предыдущее упражнение, то увидите в раскрывшемся списке объект набора данных с именем DsInstructors1.
-
Щелкните на знаке "плюс" (+), чтобы раскрыть набор данных DsInstructors1, а затем раскройте таблицу Instructors, содержащуюся в нем. В окне Properties (Свойства) вы увидите следующую структуру базы данных (см. рис. вверху следующей страницы).
Instructors - это имя таблицы из базы данных Students.mdb, а Instructor - это поле из этой таблицы, содержащее имена учителей, которые работают в гипотетическом колледже.
- Чтобы выбрать поле Instructor в качестве поля, которое будет отображаться в текстовом поле txtInstructor, щелкните на нем мышью. Убедитесь, что вы щелкнули на самом тексте "Instructor", а не на значке; в противном случае поле Instructor не будет выделено. В свойстве Text окна Properties (Свойства) появятся имена набора данных, таблицы и поля. Теперь можно написать код программы, который загружает данные в набор данных и отображает их в объекте текстового поля.
-
Восстановите прежнее состояние окна Properties (Свойства), сделайте двойной щелчок мышью на кнопке Загрузка данных, а затем введите в процедуре события btnLoad_Click, открывшейся в Редакторе кода, следующий код программы:
DsInstructors1.Clear() OleDbDataAdapter1.Fill(DsInstructors1)
Вы должны заполнить адаптер данных данными вручную с помощью метода Fill, который затем загружает информацию из определенного вами ранее набора данных в объект текстового поля. Хотя это может показаться дополнительным шагом, это легко делается с помощью двух строчек кода программы. В этом контексте метод Clear необходим для того, чтобы к набору данных не добавлялись записи, полученные с помощью предыдущих запросов к базе данных. Использование ADO.NET иногда требует дополнительных шагов, которые не требовались при использовании ADO и Visual Basic.
Совет. С целью демонстрации я поместил эти две строки в процедуру события кнопки, но можно легко поместить их в процедуру события Form1_Load, чтобы объект текстового поля заполнялся при открытии формы на экране. - Чтобы запустить программу ADO Form, щелкните на кнопке Start (Начать). Программа ADO Form запустится на выполнение в среде разработки. Заметьте, что в настоящий момент в текстовом поле нет имени инструктора.
-
Щелкните на кнопке Загрузка данных. Через мгновение в текстовом поле появится имя "Delamarco, Stefan", как показано на следующей иллюстрации. Это первое имя инструктора в базе данных Students.
- Чтобы завершить выполнение программы, щелкните на кнопке Закрыть формы. Вы успешно вывели на экран имя инструктора из базы данных Students.