- •Предисловие
- •1. Анализ предметной области
- •1.1Анализ требований. Диаграмма вариантов использования
- •1.1.1Диаграмма вариантов использования
- •1.2Концептуальное моделирование предметной области
- •2. Проектирование базы данных
- •2.1Логическая модель базы данных
- •2.2Физическая модель базы данных
- •3.1Подключение к серверу ms sql Server 2008 r2
- •3.2Создание новой базы данных на сервере
- •3.3Создание новой таблицы на сервере
- •3. Создание базы данных
- •3.4Создание связей
- •3.5Создание диаграммы базы данных
- •3.6Ограничения целостности базы данных
- •3.7Сценарий создания базы данных
- •4. Заполнение базы данных
- •4.1Загрузка информации в базу данных средствами Management Studio
- •4.2Ведение базы данных средствами sql
- •4.3Sql-запросы на вставку, модификацию и удаление данных
- •4.3.1Добавление новых записей в таблицу (insert)
- •4.3.2Модификация существующих записей (update)
- •4.3.3Удаление записей из таблицы (delete)
- •5. Запросы на выборку данных
- •5.1Общий синтаксис запроса select
- •5.2Примеры реализации запросов
- •6. Организация бизнес-логики
- •6.1Хранимые процедуры
- •6.2Триггеры
- •7. Прикладной программный интерфейс субд
- •7.1Знакомство с основными объектами ado.Net
- •7.2Разработка клиентского приложения
- •7.3Пример разработки: иас «Оптовый заводской склад»
- •7.4Реализация основных функций Системы
- •7.4.1Ведение основных справочников и оформление поставок деталей
- •7.4.2Организация поиска поставок деталей
- •8. Администрирование сервера бд
- •8.1Инсталляция сервера
- •8.2Резервное копирование и восстановление бд
- •8.3Санкционирование доступа
- •Приложение а. Варианты заданий
- •1. Биржа труда
- •2. Проектная организация
- •3. Библиотечный фонд города
- •4. Турагентство
- •5. Регистратура городской поликлиники
- •6. Гибдд
- •7. Оператор сотовой связи
- •8. Аптека
- •9. Аудиторный фонд университета
- •10. Агентство недвижимости
- •11. Студенческий городок
- •12. Санаторий
- •13. Продуктовый магазин
- •14. Научные публикации вуза
- •15. Служба такси
- •16. Страховое агентство
- •17. Сайт купонов на скидки
- •18. Учебный план
- •19. Преподаватели университета
- •20. Расчет стипендии
- •21. Расписание занятий
- •Приложение б. Состав отчета
- •Список литературы
- •153003, Г. Иваново, ул. Рабфаковская, 34.
7.2Разработка клиентского приложения
Клиентское приложение для работы с базой данных SQL Server должно включать компоненты визуального отображения данных на форме, компоненты связи с источником данных и соответствующий серверу управляемый провайдер. Поэтому на первоначальном этапе разработки приложения выполняется подключение соответствующих модулей (рис. 7.1).
Рис. 7.1. Определение пространства имен
Далее формируется строка подключения к соответствующей базе данных на сервере. Эта строка будет впоследствии использоваться в компонентах связи с источником для согласования данных в клиентской и серверной частях приложения. Текст строки формируется либо вручную (рис. 7.2), либо с использованием SQLConnectionBuilder.
Рис. 7.2. Формирование строки подключения к источнику данных
Базовый формат строки подключения содержит последовательность пар "ключевое слово - значение", разделенных символами точки с запятой. Знак равенства связывает каждое ключевое слово с его значением. Для подключения к локальному компьютеру используется имя "(local)" либо символ «точка». Если имя сервера не задано, будет сделана попытка установить соединение с экземпляром по умолчанию на локальном компьютере.
После установления связи с источником формируется «снимок» используемой на клиенте части базы данных, инкапсулированный в DataSet и представляемый в виде коллекции объектов DataTable, связанных отношениями DataRelation. Как правило, данный этап реализуется следующей последовательностью шагов.
Построение и заполнение каждого объекта DataTable класса DataSet данными из источника с помощью класса DataAdapter (рис. 7.3 и 7.4).
Автоматическая генерация команд на вставку, удаление и модификацию записей каждого объекта SqlDataAdapter для согласования DataSet и источника данных посредством SqlCommandBuilder (рис. 7.5). Одновременно можно связать только один объект SqlDataAdapter или SqlCommandBuilder друг с другом. Для создания инструкций INSERT, UPDATE или DELETE объект SqlCommandBuilder использует свойство SelectCommand, чтобы автоматически получать нужный набор метаданных.
Связывание таблиц DataSet отношениями DataRelation (рис. 7.6).
Связывание элементов управления с данными (рис. 7.7).
Рис. 7.3. Создание объектов SqlDataAdapter
Рис. 7.4. Заполнение DataSet с помощью объектов SqlDataAdapter
Рис. 7.5. Автоматическая генерация команд модификации данных
Рис. 7.6. Связывание таблиц в DataSet
Рис. 7.7. Связывание DataSet с элементами управления
Согласование изменений, происходящих в DataSet в процессе работы программы, с исходной базой данных выполняется посредством вызова метода Update класса DataAdapter (рис. 7.8).
Следует заметить, что при работе с классами DataAdapter не требуется явны образом выполнять подключение к источнику данных. В случаях же, когда для обращения к базе данных используется класс SqlCommand (например, при вызове хранимых процедур или выполнении параметризованных запросов) подключение к источнику данных выполняется явным образом посредством вызова метода Open() класса SqlConnection. Чтобы гарантировать закрытие подключения, открывать его следует в блоке using (рис. 7.9).
Рис. 7.8. Согласование изменений DataSet и источника данных
Рис. 7.9. Пример работы с SqlCommand и SqlDataReader
Для хранения результатов выполнения SqlCommand используется объект класса SqlDataReader. Чтобы создать объект SqlDataReader вместо того, чтобы воспользоваться непосредственно конструктором, рекомендуется вызвать метод ExecuteReader объекта SqlCommand.
Созданный объект SqlCommand можно повторно использовать, выполнив сброс для свойства CommandText. Однако следует предварительно закрыть объект SqlDataReader, прежде чем выполнять новую команду.
Визуализация данных в приложении выполняется при помощи различных элементов управления, основными из которых являются таблица DataGridView и навигатор BindingNavigator (рис. 7.10). У таблицы можно настроить видимость и способ отображения столбцов (рис. 7.11), а у навигатора – доступные пользователю кнопки (рис. 7.12). Оба эти элемента управления связываются с источником данных через компонент-посредник BindingSource, инкапсулирующий источник данных для формы Windows Form.
Кроме того, для отображения данных можно использовать и другие визуальные компоненты, используя свойства DataSource или DataBindings этих компонентов.
Рис. 7.10. Элементы управления данными: таблица и навигатор
Рис. 7.11. Настройка столбцов таблицы
Рис. 7.12. Настройка кнопок навигатора
