Вместо того чтобы воссоздавать в вашей форме таблицу базы данных Access, Visual Basic позволяет отображать только те поля и записи, которые вы хотите увидеть - можете предоставить вашим пользователям возможность увидеть всю таблицу информации из базы данных, а можете показать только те поля, которые вы хотите. В дополнение к этому можно предоставить механизм навигации так, что пользователи смогут просматривать все записи в базе данных, а можно отображать только конкретные записи. Наконец, можно позволить пользователям изменять или даже удалять информацию из базы данных, а можете ограничить их действия только просмотром записей из базы данных. Короче, Visual Basic позволяет создавать программу для просмотра базы данных - или внешний интерфейс - который предоставляет только ту информацию и те возможности доступа к данным, которые вы хотите предоставить своим пользователям. Большинство элементов управления на закладке Windows Forms окна Область элементов имеют встроенную возможность отобра-жать в форме информацию из базы данных. В терминологии Visual Basic эти элементы управления обычно называются связанными элементами управления.
Элемент управления называется связанным с источником данных, когда его свойство DataBindings содержит одно из полей набора данных. (bindings - обязательный)
После установки соединения вы можете отображать информацию из базы данных с помощью методов и свойств, имеющихся в объектной модели ADO.NET.
Элементы управления с закладки Windows Forms окна Области элементов, которые могут отображать информацию из базы данных, включают
TextBox,
ComboBox,
Label
ListBox,
Calendar
CheckBox,
RadioButton,
DataGrid
PictureBox. |
Выбор элемента управления зависит от типа данных, методов их обработки и модели интерфейса.
При выводе информации в разных элементах управления последние требуется синхронизировать таким образом, чтобы в них была представлена одна и та же запись (например, поле с именем и фамилией). Эти проблемы в среде .NET Framework решаются при помощи технологии, именуемой связыванием.
Каждому элементу управления (в том числе и форме), который служит контейнером, соответствует связанный с ним объект BindingContext, который взаимодействует с коллекцией объектов CurrencyManager.
Каждый источник данных, связанный с элементами управления в форме, имеет свой собственный объект CurrencyManager. Этот объект обеспечивает синхронизацию связанных данных элементов управления с источником данных.
Для перехода от одной записи к другой вызывается метод Position соответствующего объекта CurrencyManager.
Приведенный ниже код демонстрирует, как осуществляется связывание свойства Text двух элементов управления TextBox и элемента управления DateTimePicker с различными полями одного источника данных
txtFirstName.DataBindings.Add("Text",dsEmployeeInfo,"Employee.fname")
txtLast-Name.DataBindings.Add("Text",dsEmployeeInfo,"Employee.lname")
dtpHir-Date.DataBindings.Add("Text",dsEmployeeInfo,"Employee.HireDate")
В данном случае объект BindingContext связывает формы с одним и тем же объектом CurrencyManager, поскольку они подключены к одному источнику данных.
С помощью объекта BindingContext и набора данных можно осуществлять навигацию по базе данных.
Отображение текущей позиции записи
В дополнение к предоставлению в вашей форме базовых инструментов для навигации вы можете предоставить некую индикацию текущего номера записи, а также общего числа записей в наборе данных. Вы можете сделать это, создав в форме объект метки, который будет отображать текущую позицию. Значение текущей позиции хранится в свойстве Position объекта BindingContext.
Следующий код инициирует вывод очередной записи таблицы базы дан-ных на экран.
ME.BindingContext(dsEmployeeInfo,"Employee").Position+=1
Если вы хотите обновлять текущую позицию каждый раз, когда используются кнопки навигации, создайте в верхней части кода программы формы процедуру, которая будет определять текущую по-зицию и отображать ее в форме.
В рассмотренных выше примерах все элементы управления связывались с объектом DataSet, однако их можно связывать также с массивами и другими структурами.
Простые связанные элементы управления обычно выводят на экран только одну запись
Сложные связанные элементы управления позволяют отображать несколько записей.
В этом случае для связывания используется свойство DataSource
Например, связать элемент управления ListBox со списком массивов имен можно следующим образом:
lstNames.DataSource=alNames
Приведенный ниже код отображает в элементе управления DataGrid одну из таблиц набора данных
DataGrid1.DataSource=dsTitleAuthor
DataGrid1.DataMember="Titles"
|