
- •4.6. Работа со связанными таблицами в Windows-формах 42
- •4.7. Представление связанных таблиц в элементе управления DataGrid 54
- •4.7.1. Создание Windows-формы 54
- •4. Построение Windows-приложений с доступом к данным через adо.Net
- •4.1. Создание Windows-приложения
- •4.2. Windows-форма как основа интерфейса
- •4.3. Доступ к данным в Windows-формах с использованием элемента управления DataGrid
- •4.3.1. Создание проекта и формы
- •4.3.2. Создание набора данных DataSet
- •Создание и конфигурирование элементов доступа к данным Connection и DataAdapter
- •Создание объекта DataSet
- •4.3.3. Добавление элемента управления DataGrid для отображения данных
- •4.3.4. Заполнение элемента управления DataGrid данными
- •4.3.5. Обновление информации в базе данных
- •4.4. Доступ к данным в Windows-формах с использованием текстовых полей
- •4.4.1. Связывание элементов TextBox с набором данных
- •4.4.2. Отображение номера текущей записи
- •4.5. Выборка и сортировка данных через запросы с параметрами
- •4.5.1. Создание Windows-формы
- •4.5.2. Создание и конфигурирование объектов DataConnection и DataAdapter
- •4.5.3. Создание набора данных
- •4.5.4. Добавление элементов отображения данных
- •4.5.5. Добавление кода для заполнения набора данных
- •4.5.6. Связывание текстовых полей с набором данных
- •4.5.7. Добавление навигации по записям
- •4.5.8. Отображение номера текущей записи
- •4.5.9. Тестирование работы приложения
- •4.6. Работа со связанными таблицами в Windows-формах
- •4.6.1. Создание и Windows-формы
- •4.6.2. Конфигурирование DataConnection и Data Adapter
- •4.6.3. Создание набора данных Dataset
- •4.6.4. Создание реляционных связей между таблицами набора данных
- •4.6.5. Добавление элементов отображения данных
- •Отображение издательств в элементе ListBox
- •Отображение наименований книг в элементе DataGrid
- •4.6.6. Заполнение набора данных
- •4.6.7. Тестирование приложения
- •4.7. Представление связанных таблиц в элементе управления DataGrid
- •4.7.1. Создание Windows-формы
- •4.7.2. Конфигурирование объектов DataConnection и DataAdapter
- •4.7.3. Добавление элементов управления
- •4.7.4. Заполнение набора данных и создание реляционных связей
- •4.7.5. Тестирование приложения
4.6.3. Создание набора данных Dataset
После того как созданы соединение с базой данных и адаптеры данных, можно создать набор данных. В Visual Studio можно сгенерировать набор данных автоматически, основываясь на SQL-запросах, которые были созданы в адаптерах данных. Набор данных — это экземпляр класса Dataset, создаваемого на основе XML-схемы (xsd-файла), в которой описываются элементы этого класса (таблицы, колонки и ограничения).
Для создания Dataset нужно выполнить следующие шаги.
1. В меню Data выберите пункт Generate DataSet.
Появится диалоговое окно Generate Dataset.
2. Установите переключатель New и задайте набору данных новое имя —dsPublishersTitles.
Удостоверьтесь, что в списке таблиц, которые будут добавлены к набору данных (Choose which table(s) to add to the dataset), присутствуют две таблицы: Publishers и Titles (рис. 4.37), и рядом с ними стоят флажки.
Рис. 4.37. Включение в набор данных двух таблиц
3. Установите флажок Add this dataset to the designer и нажмите кнопку ОК. В результате Visual Studio сгенерирует типизированный класс набора данных (dsPublishersTities) и схему, которая определяет структуру этого набора данных. Эта схема (файл dsPublishersTitles.xsd) появится в окне Solution Explorer.
Наконец, Visual Studio добавит к форме экземпляр нового класса набора данных dsPublishersTitles1.
4.6.4. Создание реляционных связей между таблицами набора данных
В нашем наборе данных содержится две таблицы, которые в базе данных имеют отношения "один ко многим". Однако набор данных — это пассивный контейнер, который не может использовать те связи между таблицами, которые заданы в базе данных. В объекте DataSet реляционные отношения между таблицами нужно задавать явно, через специально предназначенный для этих целей объект.
Примечание
Обратите внимание, что в данном примере в наборе данных таблицы Publisher и Titles физически не объединяются между собой. Через два адаптера данных можно работать с этими двумя таблицами совершенно независимо (добавлять, удалять, модифицировать записи, перемещаться по записям и пр.). В тоже время имеется возможность установить реляционные отношения и рассматривать их как взаимосвязанный набор данных.
Для создания реляционных отношений между таблицами нужно выполнить следующие действия.
1. В Solution Explorer дважды щелкните левой кнопкой мыши на схеме набора данных, который вы только что создали (элемент dsPublishersTitles.xsd).
В окне XML Designer откроется вкладка Schema, в которой будут отражены две таблицы набора данных (рис. 4.38).
Рис. 4.38. Несвязанные таблицы в окне XML Gesigner
2. Из вкладки XML Schema окна Toolbox перетащите мышью объект Relation на таблицу titles (дочерняя таблица).
Откроется диалоговое окно Edit Relation со значениями параметров связи этих двух таблиц, установленными по умолчанию (рис. 4.39).
Рис. 4.39. Диалоговое окно Edit Relation
3 Подтвердите, что вы согласны со значениями, установленными по умолчанию в диалоговом окне Edit Relation .
4. Остальные значения не важны для выполняемого примера.
5. Щелкните мышью кнопку ОК для закрытия диалогового окна Edit Relation..
В окне XML Designer появится изображение реляционного отношения между двумя таблицами (рис. 4.40).
Рис. 4.40. Связанные таблицы в окне XML Designer
Если возникнет потребность изменить параметры связи между таблицами, то нужно щелкнуть правой кнопкой мыши на значке отношения и выбрать пункт Edit Relation в контекстом меню.
6 Сохраните схему и закройте окно XML Designer.
На этом этапе все готового для того, чтобы добавить к форме элементы отображения данных.