Проектирование программного кода
Пример выполнения работы
Проектирование программного кода.
Для отображения в компонентах DataGridView данных из таблиц небходимо прежде всего открыть соединение с базой данных, затем заполнить таблицы, созданные в наборе данных DataSet данными из таблиц в базе. В нашем случае это делается при главного окна программы, в обработчике данных события Load:
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet1.Goods". При необходимости она может быть перемещена или удалена.
this.goodsTableAdapter.Fill(this.dataSet1.Goods);
// TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet1.Shops". При необходимости она может быть перемещена или удалена.
this.shopsTableAdapter.Fill(this.dataSet1.Shops);
}
Данная конструкция была создана автоматически при помощи объекта TableAdapter набора данных DataSet.
При закрытии приложения нужно отключить соединение с базой данных:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
OleDbConnection conn = new OleDbConnection();
conn.Close();
}
Задание: Реализовать с помощью технологии ADO.NET программный интерфейс управления базой данных, созданной ранее. Предусмотреть возможность добавления, редактирования, удаления и фильтрации записей.
Визуальное проектирование главного окна приложения.
Внешний вид работающего приложения приведен на рисунке 1. Настройки компонентов-таблиц dataGridView1 и dataGridView2 приведены в описании предыдущей лабораторной работы. Текстовые поля Goods и Provides предназначены для добавления новой записи или редактирования записи, приведенной в таблице. Для удобства редактирования при выделении строки в таблице данные о товарах и поставщиках копируются в соответствующие текстовые поля.
Рисунок 1 – Главное окно приложения
Обновление содержимого главного окна приложения
Обновлять содержимое главного окна приложения необходимо, когда пользователь производит какие-либо изменения с записями БД: добавление, редактирование и удаление записей таблиц, а также при открытии соединения с БД в начале работы программы. Для этого необходимо добавить в класс новый метод, выполняющий обновление главного окна приложения.
Добавить в класс новый метод можно либо вручную, либо с помощью визуальных средств разработки. Для этого следует выбрать в меню Вид (View) пункт Классы (Class View). В результате откроется окно, где можно просматривать список всех классов, определенных в пространстве имен. В контекстном меню класса главной формы приложения выбрать пункт Схема классов (View Class Diagram). После этого в рабочей области откроется файл схемы классов, где можно создать новые классы, интерфейсы, делегаты и т.д., а также добавлять в существующие классы методы, поля, свойства и т.д.
Для добавления в класс нового метода нужно выбрать в контекстном меню заголовка формы пункт Добавить®Метод (Add®Method). После этого в окне Properties (Свойства) можно установить свойства для добавляемого метода: тип возврата, вид доступа, имя метода и т.п.
Для обновления содержимого главного окна приложения необходимо добавить метод UpdateGoods(). Тип возврата – void, вид доступа – private, параметров нет. Программный код метода:
private void UpdateGoods()
{
//обновление содержимого таблиц БД
this.goodsTableAdapter.Update(this.dataSet1.Goods);
this.shopsTableAdapter.Update(this.dataSet1.Shops);
dataSet1.Clear();//очистка DataSet
//заполнение таблиц в DataSet
this.goodsTableAdapter.Fill(this.dataSet1.Goods);
this.shopsTableAdapter.Fill(this.dataSet1.Shops);
comboBox1.Items.Clear();
foreach (DataRow row in dataSet1.Goods.Rows)
{
comboBox1.Items.Add(row["Product"]);//заполнение comboBox1
}
comboBox1.Text = "";//не выбран ни один продукт
}
Обновление данных выполняется и при запуске программы. Обработчик события Form_Load:
private void Form1_Load(object sender, EventArgs e)
{
UpdateGoods();
}