Практическое руководство. Создание таблицы подстановок с помощью компонента BindingSource в формах Windows Forms
Таблица подстановки — это таблица данных, в одном из столбцов которой отображаются данные из записей в связанной таблице. В следующих процедурах для отображения поля с отношением по внешнему ключу от родительской к дочерней таблице используется элемент управления ComboBox.
Чтобы вы могли представить это отношение, приведем пример родительской и дочерней таблицы.
CustomersTable (родительская таблица)
CustomerID | CustomerName |
---|---|
712 | Павел Кох |
713 | Тамара Иванова |
OrdersTable (дочерняя таблица)
OrderID | OrderDate | CustomerID |
---|---|---|
903 | 12 февраля 2004 г. | 712 |
904 | 13 февраля 2004 г. | 713 |
В данном случае одна таблица, CustomersTable, содержит актуальную информацию, которую необходимо отобразить и сохранить. Для экономии места в таблице опущены пояснения. Другая таблица, OrdersTable, содержит только внешнюю информацию о том, какой номер идентификатора клиента соответствует тем или иным данным и идентификатору заказа. При этом имена клиентов не указываются.
Чтобы создать таблицу подстановки, в элементе управления ComboBox устанавливаются четыре важных свойства.
Свойство DataSource содержит имя таблицы.
Свойство DisplayMember содержит столбец данных таблицы, из которого нужно взять текст для элемента управления (имя клиента).
Свойство ValueMember содержит столбец данных таблицы, в которой хранится информация (номер идентификатора в родительской таблице).
Свойство SelectedValue предоставляет значение подстановки для дочерней таблицы на основании свойства ValueMember.
Представленные ниже процедуры показывают, как разместить форму в виде таблицы подстановки и привязать данные к ее элементам управления. Для успешного завершения процедур необходим источник данных с родительской и дочерней таблицами, связанными по внешнему ключу, как это уже говорилось выше.
Создание пользовательского интерфейса
Из элементов, перетащите ComboBox на форму.
Этот элемент управления будет отображать столбец из родительской таблицы.
Перетащите другие элементы управления для отображения сведений из дочерней таблицы. Формат данных в таблице следует определить, исходя из выбранных элементов управления. Дополнительные сведения см. в разделе Функциональная классификация элементов управления Windows Forms.
Перетащите в форму элемент управления BindingNavigator. Это позволит перемещаться по данным в дочерней таблице.
Подключение к данным и их привязка к элементам управления
Выберите элемент управления ComboBox и нажмите на глиф "Быстрые действия", чтобы открыть одноименное диалоговое окно.
Выберите элемент Использовать элементы, привязанные к данным.
Щелкните стрелку рядом с раскрывающимся списком Источник данных. Если источник данных ранее был настроен для проекта или формы, он отобразится. В противном случае выполните следующие действия (в этом примере используются таблицы Customers и Orders учебной базы данных Борей, а ссылки на них приводятся в круглых скобках).
Щелкните элемент Добавить источник данных проекта, чтобы подключиться к данным и создать источник данных.
На странице приветствия Мастер настройки источника данных нажмите кнопку Далее.
На странице Выбор типа источника данных выберите элемент База данных.
На странице Выбор подключения к базе данных выберите тип подключения данных из списка доступных подключений. Если необходимое подключение данных недоступно, выберите элемент Создать подключение, чтобы создать новое подключение данных.
Нажмите кнопку Да, сохранить подключение, чтобы сохранить строку подключения в файле конфигурации приложения.
Выберите объекты базы данных, чтобы перенести их в приложение. В данном случае выберите родительскую и дочернюю таблицы (например, таблицы Customers и Orders) с отношением по внешнему ключу.
Если необходимо, замените имя набора данных по умолчанию.
Нажмите кнопку Готово.
В раскрывающемся списке Отобразить участника выберите имя столбца (например, ContactName) для его отображения в поле со списком.
В раскрывающемся списке Значение участника выберите столбец (например, CustomerID), чтобы выполнить операции подстановки в дочерней таблице.
В раскрывающемся списке Выбранное значение перейдите к элементу Источники данных проекта и только что созданному набору данных, который содержит родительскую и дочернюю таблицы. Выберите такое же свойство дочерней таблицы, которое является значением участника родительской таблицы (например, Orders.CustomerID). Будут созданы и добавлены в форму соответствующие BindingSource, набор данных и компоненты адаптера таблицы.
Свяжите элемент управления BindingNavigator с элементом BindingSource дочерней таблицы (например,
OrdersBindingSource
).Свяжите элементы управления, кроме ComboBox и BindingNavigator, с полями сведений из элемента BindingSource дочерней таблицы (например,
OrdersBindingSource
), которые необходимо отобразить.