- •Предисловие
- •Анализ предметной области
- •Анализ требований. Диаграмма вариантов использования
- •Диаграмма вариантов использования
- •Концептуальное моделирование предметной области
- •Проектирование базы данных
- •Логическая модель базы данных
- •Физическая модель базы данных
- •Создание базы данных
- •Подключение к серверуMssqlServer2008r2
- •Создание новой базы данных на сервере
- •Создание новой таблицы на сервере
- •Создание связей
- •Создание диаграммы базы данных
- •Ограничения целостности базы данных
- •Сценарий создания базы данных
- •Заполнение базы данных
- •Загрузка информации в базу данных средствамиManagementStudio
- •Ведение базы данных средствамиSql
- •Sql-запросы на вставку, модификацию и удаление данных
- •Добавление новых записей в таблицу (insert)
- •Модификация существующих записей (update)
- •Удаление записей из таблицы (delete)
- •Запросы на выборку данных
- •Общий синтаксис запроса select
- •Примеры реализации запросов
- •Организация бизнес-логики
- •Хранимые процедуры
- •Триггеры
- •Прикладной программный интерфейс субд
- •Знакомство с основными объектами ado.Net
- •Разработка клиентского приложения
- •Пример разработки: иас «Оптовый заводской склад»
- •Реализация основных функций Системы
- •Ведение основных справочников и оформление поставок деталей
- •Организация поиска поставок деталей
- •Администрирование сервера бд
- •Инсталляция сервера
- •Резервное копирование и восстановление бд
- •Санкционирование доступа
- •Приложение а. Варианты заданий
- •1. Биржа труда
- •2. Проектная организация
- •3. Библиотечный фонд города
- •4. Турагентство
- •5. Регистратура городской поликлиники
- •6. Гибдд
- •7. Оператор сотовой связи
- •8. Аптека
- •9. Аудиторный фонд университета
- •10. Агентство недвижимости
- •11. Студенческий городок
- •12. Санаторий
- •13. Продуктовый магазин
- •14. Научные публикации вуза
- •15. Служба такси
- •16. Страховое агентство
- •17. Сайт купонов на скидки
- •18. Учебный план
- •19. Преподаватели университета
- •20. Расчет стипендии
- •21. Расписание занятий
- •Приложение б. Состав отчета
- •Список литературы
- •153003, Г. Иваново, ул. Рабфаковская, 34.
Разработка клиентского приложения
Клиентское приложение для работы с базой данных SQLServerдолжно включать компоненты визуального отображения данных на форме, компоненты связи с источником данных и соответствующий серверу управляемый провайдер. Поэтому на первоначальном этапе разработки приложения выполняется подключение соответствующих модулей (рис. 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, инкапсулирующий источник данных для формыWindowsForm.
Кроме того, для отображения данных можно использовать и другие визуальные компоненты, используя свойства DataSourceилиDataBindingsэтих компонентов.
Рис. 7.10. Элементы управления данными: таблица и навигатор
Рис. 7.11. Настройка столбцов таблицы
Рис. 7.12. Настройка кнопок навигатора