Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по C#_Часть1.doc
Скачиваний:
142
Добавлен:
19.08.2019
Размер:
2.54 Mб
Скачать
      1. Создание общей таблицы

В окне Источник данных в контекстном меню к верхнему узлу источника данных выберите команду Изменить набор данных в конструкторе:

В результате откроется окно Контсруктор данных. В контекстном меню к рабочей области окна Конструктор данных выберите команды Добавить, TableAdapter:

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

В следующем окне включите перключатель Использовать инструкцию SQLи нажмите кнопкуДалее:

В следующем окне нажмите кнопку Построитель запросов

В результате откроется окно Построитель запросов:

С помощью кнопки Добавить добавьте две таблицы в окно Построитель запросов и нажмите Закрыть в окне Добавление таблицы.

В результате обе таблицы появятся в поле Построителя запросов. Выберите в таблицах поля, необходимые для отображения в общей таблице:

Нажмите кнопку Выполнить запрос:

Если в таблице отобразились необходимые данные, то нажмите OK.

Далее, отключите опцию Вернуть таблицу данных:

Нажмите кнопку Далее:

В появившемся окне нажмите кнопку Готово. В источнике данных появился новый объект: DateTable1. В конструкторе данных с помощью контекстного меню к DateTable1 выберите команду Переименовать и введите имя общей таблицы.

Результат: Будет создано новое отношение, содержащее поля из обеих таблиц и метод, позволяющий заносить в эти поля данные из обеих таблиц по принципу естественного соединения

Добавьте таблицу на форму.

      1. Создание таблицы подстановок

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

Таблица подстановки используется для отображения информации из одной таблицы на основе значения поля внешнего ключа другой таблицы. Например, рассмотрим таблицу Worker в базе данных Sotrudnics. Каждая запись в таблице Worker включает значение поля passport, указывающее, сведения о каком сотруднике хранит данная запись. Поле passport является внешним ключом, указывающим на запись о сотруднике в таблице Person. При представлении списка должностей возможно потребуется отобразить не паспорт, а имя сотрудника. Поскольку имя сотрудника находится в другой таблице, а список должностей выбирается из таблицы Workers, необходимо создать таблицу подстановки, которая принимает значение passport в записи Workers и использует это значение для перемещения по связи, а затем возвращает имя сотрудника. Эта концепция называется таблицей подстановок.

Таблица подстановок создается установкой свойств в поле со списком passport подчиненной таблицы.

Примечание. В свойствах таблицы подстановок для правильной работы необходимо сделать слдующие настройки:

Свойство

Объяснение настройки

DataSource

Установите в этом свойстве источник данных BindingSource таблицы, столбец которой необходимо отобразить.

DisplayMember

Установите в этом свойстве имя столбца, который необходимо отобразить.

ValueMember

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

SelectedValue

Установите в этом свойстве имя столбца внешнего ключа связанной таблицы.

Для таблиц подстановок требуется, чтобы две связанные таблицы (родитеьская и дочерняя) или два связанных объекта были доступны в окне Источники данных.

Чтобы создать таблицу подстановок и пользовательский интерфейс к ней в виде списка подстановочных значений:

  1. Откройте окно Источники данных.

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

  1. Перетащите из окна Источники данных из родительской таблицы узел, связывающий две таблицы на форму.

Внимание. На форме появится три объекта:

  1. Затем перетащите главный узел дочерней таблицы из окна Источники данных непосредственно на подстановочный элемент управления (ComboBox).

  2. Настройте свойства подстановочного поля, т.е объекта pasportComboBox:

  • Поле для связи со стороны подчиненной таблицы: ValueMember= pasport;

  • Поле для связи со стороны родительской таблицы: SelectedValue= personBindingSource - pasport;

  • Источник данных: DataSource = workerBindingSource$

  • Поле, отображаемое в объекте pasportComboBox: DisplayMember= work.

  • Все остальные поля в разделе Данные оставить незаполненными или со значением Нет.

Теперь привязки подстановок установлены.

  1. Смените свойство Text у объекта pasportLabel с Pasport на Должность.

Для отображения второго подстановочного поля необходимо скопировать уже созданное и поменять свойство DisplayMember= salary.

Для добавления поля из родительской таблицы необходимо:

        1. В окне Источник данных установить тип поля: Textbox.

        2. Перетащить поле из окна Источник данных на форму.

Для отображения обычного (не подстановочного) поля из подчиненной таблицы необходимо:

        1. В окне Источник данных установить тип поля: Textbox.

        2. Перетащить поле из окна Источник данных на форму.

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

Внимание. Все действия должны проводится со связанными в иерархию «Главная-подчиненная» таблицами. В окне Источник данных эти таблицы отображаются в виде узла и подузла:

Пример подстановочных полей:

При смене в списке Должность должности Иванова автоматически меняется зарплата. При смене значения в списке Зарплата автоматически меняется должность. При смене с помощью навигатора фамилии сотрудника автоматически меняется содержимое всех полей формы.