Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка клиент-серверного приложения.ЛР 5 -...docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
982 Кб
Скачать
☆

Этап 4. Создание представлений данных

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

В соответствии с нашей моделью данных в таблице заказов «Orders» данные о клиента, который оформлял заказ, представлены в виде внешнего ключа целочисленного типа. Он ссылается на таблицу клиентов «Clients», причём в последней фамилия, имя и отчество клиента хранятся в отдельных полях. Пользователю будет неудобно работать с данными, представленными в таком виде.

Создадим новое представление на основе таблиц «Orders» и «Clients», в которое добавим все поля из таблицы «Orders» и новое поле, содержащее фамилию и инициалы клиента.

Для этого откроем схему набора данных нашего приложения. Щёлкнем правой кнопкой мыши на свободном пространстве и в контекстном меню выберем «Add -> Table adapter…» (Добавить адаптер таблицы). В появившемся окне нажмём кнопку «Next».

  1. Выбор типа команды

Выберем пункт «Use SQL statements» (Использовать SQL-выражение, рис. 12) и нажмём кнопку «Next».

  1. Ввод SQL выражения

Вставим наш запрос на выборку данных в текстовое поле (рис. 13). При желании запрос можно сформировать в построителе запросов (кнопка «Query Builder»). Нажмём кнопку «Next».

  1. Выбор методов для создания

Отметим все флажки (рис. 14) и нажмём кнопку «Next».

  1. Результаты работы мастера

Как видно на рис. 15, среда разработки не смогла автоматически создать запросы на вставку, обновление и удаление данных из представления из-за того, что оно содержит данные сразу из нескольких таблиц. Однако эти запросы можно позже написать вручную. Нажмём кнопку «Finish».

Созданное нами представление будет отображено на схеме данных как новая таблица (рис. 16). Переименуем представление в «ordersWfio»:

  1. Схема представления

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

Щёлкнем мышью по ordersWfioTableAdapter и откроем плавающее окно «Properies» (Свойства, рис. 17). Раскроем группы DeleteCommand, InsertCommand и UpdateCommand. Во всех трёх случаях свойство CommandText будет пусто − это значит, что отсутствуют команды на какие-либо операции с данными, кроме выборки (SelectCommand).

  1. Свойства TableAdapter

Поскольку мы будем работать с данными из таблицы «Orders», а поле «fio», наличие которого отличает таблицу «Orders» от представления «ordersWfio», мы напрямую изменять не будем, для операций вставки, обновления и удаления данных подойдут те же запросы, что и для таблицы «Orders». Скопируем тексты запросов из свойств «CommandText» таблицы «Orders» в соответствующие свойства представления «ordersWfio». Установим свойство «GenerateDBDirectMethods» в положение true для того, чтобы среда разработки создала соответствующие программные методы на основании имеющихся запросов.