Файл: Ado. Net. Постановка задачи.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 30

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа

Подключение БД Access к приложению C#. ADO технология

Цель работы. Ознакомится с компонентами технологии ADO.Net.

Постановка задачи. Создать клиентское приложение для работы с БД Товар.accdb. Приложение имеет главную форму (окно), две дочерние формы (окна). Главное окно содержит меню вызова таблиц БД (рисунок 1). Выбор пункта меню вызывает соответствующее окно для работы с двумя таблицами. Таблицы можно редактировать и добавлять новые записи.



Рисунок 1 – Фрагмент приложения

В главной форме размещаются компоненты связи приложения с БД. Порядок выполнения работы:

  1. Создаем главную форму приложения. Размещаем на ней компонент Меню для выбора нужных таблиц.

  2. Связываем БД «Товар» с нашим приложением.

  3. Создаем две подчиненные формы. На первой будут таблицы «Заказы», «Товары» и «Клиенты». На второй – «Сотрудники», «Поставщик» и «Поставка».

Обзор объектов ADO .NET

Источник данных DataSet – это специализированный объект, содержащий образ базы данных. DataSet –основной объект ADO, состоящий из объектов типа DataTable__(таблицы)'>DataTable (таблицы) и объектов типа DataRelation (связи). В коде к ним можно обращаться как к свойствам объекта DataSet, то есть, используя точечную нотацию. СвойствоTables возвращает объект типа DataTableCollection, который содержит все объекты DataTable используемой базы данных.

DataTable (таблица ADO) – используется для представления одной из таблиц базы данных в DataSet. DataTable составляется из объектов типа DataColumn.

DataRelation – выражает отношение между двумя таблицами.

DataRow. Коллекция Rows объекта DataTable возвращает набор строк

(записей) заданной таблицы. Эта коллекция используется для изучения результатов запроса к базе данных. Мы можем обращаться к записям таблицы как к элементам массива.

DataAdapter (преобразователь) – осуществляет взаимодействия между DataSet и собственно источником данных. DataAdapter содержит метод Fill() для обновления данных из базы и заполнения DataSet.

Создание нового многооконного приложения


Шаг 1 Создаем пустое многооконное Windows-приложение в C#:

1.1 Запускаем Visual Studio 2017. Выбираем Файл -> Создать -> проект > Visual C# / Приложение Windows Forms. Сохраняем проект под именем To-

varCHAccess в своей папке. В папку нашего проекта

\TovarCSAccess\bin\Debug\ (там будет исполняющий файл с расширением .exe) помещаем файл БД Товар.accdb.

1.2 Form1 делаем главной (Parent Form): свойство IsMDIContainer = True;  свойство Text = ИС "Товар".

Дочерние окна отображаются внутри «главного» окна. Отметим, что на главной форме мы не будем отображать никакие визуальные компоненты, т.к. они будут закрывать дочерние формы.

1.3 Создаем дочернюю форму Form2: выбираем пункт меню Проект -> Добавить форму Windows.. -> Форма Windows Forms. Нажимаем кнопку

«Добавить».

Свойство Text = Таблицы: Заказы, Товары, Клиенты.

1.4 Создайте дочернюю форму Form3. Свойство Text = Таблицы: Сотрудники, Поставщик, Поставка.

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

1.5 Организуем вызов дочерних форм из Form1:

 Добавляем компонент MenuStrip и оформляем по шаблону:



 Дважды кликаем по пункту меню «Заказы Товары Клиенты» и в обработчике событий пишем код для вывода таблиц на Form2:



 Задание: создайте обработчик пункт меню «Сотрудники, Поставщик, Поставка» для вывода таблиц на Form3.

 Сохраняем проект – Файл -> Сохранить все (Ctrl+Shift+S), компилируем и запускаем программу (F5). Видим результат:



По желанию можно изменить свойство WindowsState каждой формы.

Шаг 2 Привязка базы данных «Товар.accdb» к главной форме:

2.1 Переходим на Form1. Размещаем компонент «Binding Soure» (Панель элементов/Данные) на форму. После размещения его на форме среда разработки принимает следующий вид:



2.2 Основным свойством компонента «Binding Soure» является свойство DataSource, указывающее на источник данных. При выборе данного свойства в окне свойств появляется следующее окно:





Появляется окно диалога



Выбираем пункт «База данных» («Database») и нажимаем «Далее».



Набор данных – это коллекция записей из одной или нескольких таблиц базы данных. Жмем «Далее». Появляется окно выбора соединения с данными.



Далее выбираем провайдера и указываем путь к БД «Товар». Нажимаем «Проверить подключение»



Если все хорошо, то появится сообщение



Жмем «OK», потом еще раз «OK» и приходим к окну подключения, где уже прописана база данных «Товар.accdb».Жмем «Далее»:



Появляется окно, сообщающее, что будет создан образ БД «Товар» в приложении. Жмем «Далее».



Далее выбираем таблицы в набор данных и нажимаем готово:



На дополнительной панели отображается набор данных «товарDataSet».



Шаг 3 Разработка Form2 для работы с таблицами «Заказы», «Товары» и «Клиенты».

3.1 Переходим на Form2. Для отображения таблицы «Заказы» ставим на Form2 компонент DataGridView'>DataGridView из группы компонентов Data.



Выбираем источник данных:



Жмем «Далее» до выбора таблиц. Выбираем таблицу «Заказы» и нажимаем «Готово».




Компонент DataGridView1 связан с таблицей «Заказы».

3.2 Для навигации по таблице «Заказы» ставим на Form2 компонент bindingNavigator из группы компонентов Data. Он визуально установится вверху формы. Заходим в свойство Anchor и убираем привязку сверху и слева как показано на рисунке.



3.3 Связываем таблицу «Заказы» на Form2 с bindingNavigator. Выделяем свойство BindingSource и выбираем заказы BindingSource:



3.4 Редактирование данных в ячейках компонента DataGridView возможно, но неудобно. Поэтому для таблицы «Заказы» поля «Дата размещения» и «Дата исполнения» продублируем в компонентах TextBox (в них можно редактировать значения полей). Для этого разместим на Form2 контейнер типа Panel (вкладка «Контейнеры»), а на нем два компонента TextBox (вкладка «Стандартные элементы управления»).

3.5 Осуществим привязку компонента TextBox1 к полю «ДатаРазмещения» таблицы «Заказы». Для этого используем свойство из группы DataBindings–Advanced:



Проводим привязку в диалоговом окне:

в поле привязка выбираем заказыBindingSource;  в поле тип формата – Дата Время.



3.6 Аналогично, осуществите привязку компонента TextBox2 к полю «ДатаИсполнения» таблицы «Заказы».

3.7 Для того, чтобы изменения (видные на форме) были внесены в базу данных, необходимо выполнить метод Update класса TableAdapter. Для этого, размещаем кнопку «Обновить» и в обработчике событиий Click вводим следующий программный код:

3.8 Сохранить все. Запустить приложение (F5) и проверить правильность работы приложения.

3.9 Аналогично реализации таблицы «Заказы» проведите реализацию таблиц «Товары» и «Клиенты» на Form2.

Шаг 4 Аналогично разработке Form2 разработайте Form3 для работы с таблицами «Сотрудники», «Поставщик» и «Поставка». Вид действующего приложения приведен на рисунках ниже.




Литература

Фленов М.Е. Библия C# //СПб.: БХВ-Петербург.-2011.-544с.