5ый семестр / ТРПО_Богословская / Практикум 4
.docxПрактическая работа 4. Этап разработки программной системы Компоненты технологии ADO .NET
Цель
Получить представление о технологиях, используемых при разработке программного кода системы.
Решение
Разработать программный код приложения к базе данных на основе технологии доступа к данным ADO.NET.
Обсуждение
Концепция .NET определяет целый ряд пространств имен, обеспечивающих взаимодействие с локальными и удаленными хранилищами данных. Эти пространства имен известны под общим названием ADO.NET.
Платформа .NET обеспечивает поддержку нескольких поставщиков данных, каждый из которых оптимизирован для доступа к конкретным системам управления базами данных (Microsoft SQL Server, Oracle, MySQL и другим).
В практических работах мы с вами выполнили создание базы данных на сервере MS SQL Server, следовательно, будем использовать источник данных Microsoft SQL Server. Для работы с этим источником используются классы из пространства имен System.Data.SqlClient.
Из пространства имен System.Data.SqlClient нам потребуются следующие классы:
-
SqlConnection – предназначен для соединения с базой данных SQL Server;
-
SqlDataAdapter ‑ предназначен для работы с базой данных в отсоединенном режиме.
Кроме перечисленных классов потребуется класс DataSet, размещенный в пространстве System.Data. DataSet представляет собой локальное хранилище (копию базы данных), которое можно заполнить данными в отсоединенном режиме.
Рассмотрим технологию разработки Windows-приложения базы данных с использованием локального хранилища DataSet.
Запустите MS Visual Studio. В меню Файл – Создать Проект выберите шаблон Windows Application.
Можно изменить название формы в свойствах формы (Text). На Панели инструментов в разделе Меню и панели инструментов найдите элемент управления MenuStrip и перетащите его в область формы (элемент «прыгнет» в подвал формы). Для создания контейнера приложения установите свойство формы IsMdiConteiner=true (рис.1).

Рисунок 1
Из меню Вид откройте Обозреватель серверов. Щелкните по кнопке создания соединения Подключиться к базе данных и укажите источник данных (рис.2).

Рисунок 2
В следующем диалоге (рис.3) выберите из списка имя сервера и базы данных. Нажмите кнопку Проверить подключение для тестирования соединения.
Рисунок
3
Проверьте состояние диаграммы и таблиц в базе данных. Можно внести несколько записей в таблицы (будут данные для отображения в формах).
Начнем разрабатывать форму для заполнения данных о клиенте (только для таблицы Клиент). Добавьте в меню строчку текста для вызова формы (рис.4) и дважды щелкните рядом для перехода в режим программирования.
Рисунок 4
Добавьте в проект еще одну Windows–форму: контекстное меню WindowsFormsApplication – Добавить – Форма Windows (рис. 5).

Рисунок 5
Перейдите на вкладку кодирования Form1.cs и введите строки программного кода для инициализации Form2 по щелчку на соответствующей строке меню.

Перейдите на вкладку конструирования Form2 и разместите на форме элемент управления DataGridView для отображения данных из таблицы Клиент (рис.6). Дважды щелкните по форме для перехода в режим кодирования.

Рисунок 6
Первым шагом в работе с поставщиком данных является создание соединения с источником данных. Мы установили такое соединение визуальными средствами редактора, поэтому параметры соединения можно скопировать из свойств соединения и записать их в программный код.
Для короткого написания имен классов, которые нам потребуются, удобно указать путь к необходимым пространствам имен. На рис.7 в верхней части страницы указаны необходимые пространства.

Рисунок 7
Создайте объект cnn (класса SqlConnection) для выполнения соединения с базой данных. На панели Обозреватель серверов выделите объект соединения с базой данных (пиктограмма БД с вилкой), после чего в свойствах этого объекта (окно Свойства справа) выделите и скопируйте в буфер всю строку соединения (рис.8). Только для этого мы и устанавливали непосредственное соединение с базой данных в начале.
Копию этой строки нужно вставить в качестве параметров конструктора соединения в вашем программном коде. Обратите внимание на текстовые кавычки и символ @ (для экранирования служебных символов).

Объявление объекта Connection следует выполнить на уровне описания класса текущей формы, другими словами, объект Connection должен быть доступен на уровне всей формы для любых методов (обработчиков событий).


Рисунок 8
Опишите объекты DataSet и DataAdapter на уровне формы.
В обработчике события загрузки формы Form_Load() добавьте описание адаптера данных на выполнение команды Select из таблицы Client базы данных.
Выполните вызов метода Fill() адаптера данных для загрузки копии таблицы Client в объект DataSet.
Выполните отображение таблицы Client из DataSet в элемент управления DataGridView.

Запустите приложение, проверьте его работоспособность. Приложение позволяет просматривать данные, но внесенные изменения, добавления или удаления пока еще не сохраняются в базе данных.
Для автоматического генерирования команд вставки, удаления и изменения в базе данных в библиотеке .NET имеется класс SqlCommandBuilder (построитель команд). Воспользуемся этим классом для реализации двухсторонней связи с таблицей базы данных.
В режиме конструктора добавьте в форму кнопку с названием «Добавить изменения в БД» (рис.9).
Добавьте в код обработчика события загрузки формы инициализацию объекта CommandBuilder. Адаптер (da) передается CommandBuilder в качестве параметра для того, чтобы построитель знал для какой таблицы и каких полей ему следует формировать команды вставки, удаления и изменения.

Добавьте код обработчика события кнопки «Добавить изменения в БД».


Рисунок 9
Самостоятельно
Разработайте интерфейс приложения для выполнения добавления, удаления, изменения записей одного из справочников вашей информационной системы.
