- •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.5.9. Тестирование работы приложения
Вы можете теперь проверить работу данной формы, чтобы удостовериться, что она отображает именно те данные, которые вы запрашиваете при вводе параметра.
Для тестирования работы формы выполните следующие действия.
Нажмите клавишу <F5> для запуска формы.
Когда форма появится на экране, введите код штата Калифорния (са) в соответствующем текстовом поле, и затем нажмите кнопку Показать авторов.
В текстовых полях будет отображена информация из базы данных о первом авторе, который живет в Калифорнии.
3. Нажимайте кнопки Предыдущая и Следующая, чтобы убедится в корректности перемещения по записям (рис. 4.35).
Рис. 4.35. Форма во время работы приложения
4. Введите значение нового кода штата в текстовое поле (например, UT для штата Юта), и затем нажмите кнопку Показать авторов.
Вы увидите, что будет отображен новый автор и изменится количество записей.
4.6. Работа со связанными таблицами в Windows-формах
Во многих приложениях необходимо работать с данными, которые отображают информацию из нескольких связанных таблиц (использовать реляционные отношения между родительской и дочерней таблицами). Например, Пользователь имеет запись с информацией о клиенте и хочет видеть заказы, сделанные этим клиентом.
Разъединенная модель набора данных в Visual Studio позволяет работать не только с дискретными таблицами в вашем приложении, но и определять отношения между ними. Тогда можно использовать эти отношения, чтобы перемещаться между связанными записями.
Это приложение иллюстрирует простой, но законченный пример работы со связанными таблицами в наборе данных. Мы создадим Windows-форму, в которой отображается информация об издательствах (родительская таблица), и об изданных ими книгах (дочерняя таблица).
Пример предполагает прохождение следующих шагов:
создание Windows-формы;
создание и конфигурирование набора данных, который содержит две таблицы, создание реляционных отношений между таблицами;
добавление элементов отображения данных и связывание их с соответствующими объектами хранения данных;
формирование программного кода, обеспечивающего заполнение набора данных;
тестирование работы формы.
4.6.1. Создание и Windows-формы
На первом шаге создается Windows-форма в следующей последовательности.
Из меню File выберите команду Add Windows Form.
Появиться диалоговое окно Add New Iten.
Нажмите кнопку Add и в проект будет добавлена новая форма с именем Form3.
На следующем шаге добавьте к форме и сконфигурируйте набор данных. В примере данного раздела набор данных будет содержать две таблицы: таблицу издательств (publishers) и таблицу наименований книг (titles). Обе таблицы присутствуют в базе данных Pubs, поставляемой вместе с SQL Server. Таблицы имеют реляционные отношения. Поле, идентифицирующее издательство (pub_id), является первичным ключом таблицы Publishers и внешним ключом к таблице Titles.
4.6.2. Конфигурирование DataConnection и Data Adapter
Работа над созданием соединения и адаптера данных будет происходить следующим образом. Сначала необходимо сформировать адаптеры данных, которые содержат SQL-запросы, заполняющие наборы данных информацией на этапе работы приложения. Как часть этого процесса, автоматически будет создано соединение с базой данных. Для конфигурации адаптеров данных будет использоваться соответствующий мастер. Для данного приложения нужно будет создать два адаптера данных, один, чтобы заполнять данными таблицу publishers, другой для получения данных из таблицы titles.
Для создания соединения и адаптеров данных выполните следующие действия.
1. Из вкладки Data окна Toolbox перенесите на форму объект OleDbDataAdapter.
Примечание
Вы можете также использовать объект SqlDataAdapter, который оптимизирован для работы SQL Server версии 7.0 и выше.
Будет запущен мастер Data Adapter Configuration Wizard, который поможет создать объекты DataConnection и DataAdapter.
2. В мастере выполните следующие действия:
На второй странице создайте или выберите соединение, указывающее на базу данных Pubs вашего SQL-сервера;
На третьей странице укажите, что вы хотите использовать именно SQL-запрос для обращения к базе данных;
На четвертой странице создайте следующий SQL-запрос (рис. 4.36):
SELECT pub_id, pub__name FROM publishers
Примечание
Для помощи формирования SQL-запроса нажмите Query Builder, чтобы запустить мастер формирования запросов Query Builder.
3. Щелкните кнопку Finish для завершения работы мастера.
Мастер создаст соединение с базой данных (объект oleDbConnectioni) и адаптер данных (объект oleDbDataAdapteri), который будет содержать SQL-запрос для получения записей из таблицы Publishers.
Рис. 4.36. Формирование запроса в окне Query Bilder
Перетащите на форму второй объект OleDbDataAdapter. Снова будет запущен мастер Data Adapter Configuration Wizard.
В окне мастера выполните следующие действия.
На второй странице выберите то же самое соединение, которое вы использовали или создали для работы с таблицей publishers.
На третьей странице укажите, что вы хотите использовать именно SQL-запрос для обращения к базе данных;
На четвертой странице создайте следующий SQL-запрос для обращения r таблице titles.
SELECT title_id, title, pub_id, price FROM titles
Примечание
В предложение select необходимо обязательно включить столбец pub_id.
6. Мастер добавит на форму еще один адаптер данных OleDbDataAdapter2. На следующем этапе необходимо будет сгенерировать набор данных.