Поделиться через


Практическое руководство. Создание таблицы подстановки с помощью компонента BindingSource Windows Forms

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

Чтобы визуализировать эти две таблицы и эту связь, ниже приведен пример родительской и дочерней таблицы:

CustomersTable (родительская таблица)

ID клиента ИмяКлиента
712 Пол Кох
713 Тамара Джонстон

OrdersTable (дочерняя таблица)

Идентификатор заказа Дата заказа CustomerID (Идентификатор клиента)
903 12 февраля 2004 г. 712
904 13 февраля 2004 г. 713

В этом сценарии одна таблица CustomersTable хранит фактические сведения, которые вы хотите отобразить и сохранить. Но чтобы сэкономить место, таблица оставляет данные, которые добавляют ясность. В другой таблице OrderTable содержатся только сведения о том, какой номер идентификатора клиента эквивалентен дате заказа и идентификатору заказа. Нет никаких упоминаний о именах клиентов.

На элементе управления ComboBox задаются четыре важных свойства, чтобы создать таблицу подстановки.

  • Свойство DataSource содержит имя таблицы.

  • Свойство DisplayMember содержит столбец данных этой таблицы, которую нужно отобразить для текста элемента управления (имя клиента).

  • Свойство ValueMember содержит столбец данных этой таблицы с сохраненными данными (идентификатором в родительской таблице).

  • На основе ValueMember, свойство SelectedValue предоставляет значение для поиска для дочерней таблицы.

В следующих процедурах показано, как оформить форму как таблицу подстановочных значений и связать данные с элементами управления. Как упоминалось ранее, для успешного выполнения процедур необходимо иметь источник данных с родительскими и дочерними таблицами, имеющими отношение внешнего ключа.

Создание пользовательского интерфейса

  1. Из панели инструментов ToolBoxперетащите элемент управления ComboBox на форму.

    Этот элемент управления будет отображать столбец из родительской таблицы.

  2. Перетащите другие элементы управления, чтобы отобразить сведения из дочерней таблицы. Формат данных в таблице должен определить, какие элементы управления вы выбрали. Дополнительные сведения см. в разделе «Элементы управления Windows Forms по функциям» .

  3. Перетащите элемент управления BindingNavigator в форму; Это позволит перемещать данные в дочерней таблице.

Подключение к данным и привязка его к элементам управления

  1. Выберите ComboBox и щелкните значок Smart Task, чтобы отобразить диалоговое окно "Smart Task".

  2. Выберите Использовать привязанные к данным элементы.

  3. Щелкните стрелку рядом с выпадающим списком источник данных. Если источник данных ранее был настроен для проекта или формы, он появится; в противном случае выполните следующие действия (в этом примере используются таблицы "Клиенты и заказы" примера базы данных Northwind и ссылаются на них в скобках).

    1. Щелкните Добавить источник данных проекта, чтобы подключиться к данным и создать источник данных.

    2. На странице приветствия мастера настройки источника данных нажмите кнопку Далее.

    3. Выберите базы данных на странице Выбор типа источника данных.

    4. Выберите подключение к данным из списка доступных подключений на странице Выбор подключения к данным. Если нужное подключение к данным недоступно, выберите Новое подключение, чтобы его создать.

    5. Нажмите Да, чтобы сохранить строку подключения в файле конфигурации приложения.

    6. Выберите объекты базы данных, которые нужно перенести в приложение. В этом случае выберите основную и подчинённую таблицы (например, Клиенты и Заказы) с внешним ключом.

    7. Замените имя набора данных по умолчанию, если вы хотите.

    8. Нажмите кнопку Готово.

  4. В раскрывающемся списке Display Member выберите имя столбца (например, ContactName) для отображения в комбинированном списке.

  5. В раскрывающемся списке свойства Value Member выберите столбец (например, CustomerID), чтобы выполнить операцию поиска в дочерней таблице.

  6. В раскрывающемся списке выбранного значения перейдите к источникам данных проекта и только что созданному набору данных, который содержит родительские и дочерние таблицы. Выберите то же свойство дочерней таблицы, которая является элементом значения родительской таблицы (например, Orders.CustomerID). Соответствующие BindingSource, набор данных и компоненты адаптера таблиц будут созданы и добавлены в форму.

  7. Привязать элемент управления BindingNavigator к BindingSource дочерней таблицы (например, OrdersBindingSource).

  8. Привязывайте элементы управления, отличные от ComboBox и BindingNavigator, к полям сведений из BindingSource дочерней таблицы (например, OrdersBindingSource), которые необходимо отобразить.

См. также