Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным работам.docx
Скачиваний:
13
Добавлен:
18.11.2022
Размер:
3.07 Mб
Скачать

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

Задание:

  1. Создать в базе данных Sale представление OrderPerDate, выбирающее заказы на заданную дату.

  2. Создать в базе данных Sale представление OrderPerProduct, отображающее заказы выбранного товара. Включите в представление все таблицы базы данных и следующие поля: order.key_client, fam.name_firm, client.fam, order.date_order, order.quantity_order, order.date_sale, order.quantity_sale, client.key_client и client.fam Присвойте всем полям русскоязычные псевдонимы (кроме двух последних полей). Отсортируйте результат по коду клиента и дате заказа.

  3. Создать в базе данных Sale OrderPerClient, отображающее заказы выбранного клиента. Включите в представление таблицы client, order и product и следующие поля: order.key_product, product.category, product.name_product, product_price, order.date_order, order quantity_order, order.date_sale, order.quantity_sale, product.key_product и product.name_product. Присвойте всем полям русскоязычные псевдонимы (кроме двух последних полей). Проверьте работу всех созданных представлений.

Определения представлений:

Представление OrderPerDate:

Представление OrderPerProduct:

Представление OrderPerClient:

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

Задание:

  1. Создать проект, на главной форме проекта создать меню с пунктом Представления и подпунктами Заказы на заданную дату, Заказы покупателя, Заказы товара.

  2. Добавить в проект три новые формы и озаглавить их соответственно подпунктам главного меню.

  3. Подключить к проекту Nu-get пакет, позволяющий работать с провайдером баз данных PostgreSQL.

  4. На форме Заказы на заданную дату обеспечить выбор даты с помощью элемента управления типа DateTimePicker или MonthCalendar (по выбору).

  5. Обеспечить отображение заказов на заданную дату в табличной форме с помощью представления OrderPerDate.

  6. На форме Заказы покупателя обеспечить отображение списка покупателей с помощью элемента управления типа ComboBox.

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

  8. На форме Заказы товара обеспечить отображение списка товаров с помощью элемента управления типа ListBox.

  9. Обеспечить отображение заказов выбранного товара в табличной форме с помощью представления OrderPerProduct.

  10. Обеспечить корректность закрытия всех форм проекта.

Текст программы:

Форма Заказы на заданную дату:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Npgsql;

namespace Лабораторная_работа__5

{

public partial class Form16 : Form

{

public Form16()

{

InitializeComponent();

}

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)

{

string Con;

Con = "Host=192.168.55.2; Database=Sale1;Username=Admin;" + "Password=Qwe88888;Persist Security Info=true";

NpgsqlConnection NC = new NpgsqlConnection(Con);

NC.Open();

string SC = "select * from public.\"OrderPerDate\"";

NpgsqlDataAdapter NA = new NpgsqlDataAdapter(SC, NC);

DataSet ds = new DataSet();

ds.Clear();

NA.Fill(ds, "public.\"OrderPerDate\"");

DataView w = new DataView(ds.Tables["public.\"OrderPerDate\""]);

w.RowFilter = "date_sale" + "='" + System.Convert.ToString(dateTimePicker1.Value).Substring(0, 10) + "'";

dataGrid1.DataSource = w;

ds.Tables[0].Columns[0].ColumnName = "Фамилия";

ds.Tables[0].Columns[1].ColumnName = "Адрес";

ds.Tables[0].Columns[2].ColumnName = "Код товара";

ds.Tables[0].Columns[3].ColumnName = "Дата заказа";

ds.Tables[0].Columns[4].ColumnName = "Дата продажи";

NC.Close();

}

}

}

Форма Заказы покупателя:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Npgsql;

namespace Лабораторная_работа__5

{

public partial class Form17 : Form

{

public Form17()

{

InitializeComponent();

}

string Con = "Host=192.168.55.2; Database=Sale1;Username=Admin;" + "Password=Qwe88888;Persist Security Info=true";

DataTable d = new DataTable("client");

private void Form17_Load(object sender, EventArgs e)

{

string Sel = "SELECT key_client from public.client";

NpgsqlConnection NC = new NpgsqlConnection(Con);

NC.Open();

NpgsqlDataAdapter NA = new NpgsqlDataAdapter(Sel, NC);

NA.Fill(d);

comboBox1.DataSource = d;

comboBox1.DisplayMember = "key_client";

comboBox1.ValueMember = "key_client";

NC.Close();

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

NpgsqlConnection NC = new NpgsqlConnection(Con);

NC.Open();

string Sel = "select * from public.\"OrderPerClient\"";

NpgsqlDataAdapter NA = new NpgsqlDataAdapter(Sel, NC);

DataSet ds = new DataSet();

ds.Clear();

NA.Fill(ds, "public.\"OrderPerClient\"");

DataView w = new DataView(ds.Tables["public.\"OrderPerClient\""]);

w.RowFilter = "key_client" + "='" + System.Convert.ToString(d.Rows[comboBox1.SelectedIndex][0]) + "'";

dataGrid1.DataSource = w;

ds.Tables[0].Columns[0].ColumnName = "Код продукта";

ds.Tables[0].Columns[1].ColumnName = "Категория";

ds.Tables[0].Columns[2].ColumnName = "Название продукта";

ds.Tables[0].Columns[3].ColumnName = "Цена";

ds.Tables[0].Columns[4].ColumnName = "Дата заказа";

ds.Tables[0].Columns[5].ColumnName = "Количество заказа";

ds.Tables[0].Columns[6].ColumnName = "Дата продажи";

ds.Tables[0].Columns[7].ColumnName = "Количество продажи";

ds.Tables[0].Columns[8].ColumnName = "Код клиента";

NC.Close();

}

}

}

Форма Заказы товара:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Npgsql;

namespace Лабораторная_работа__5

{

public partial class Form18 : Form

{

public Form18()

{

InitializeComponent();

}

string Con = "Host=192.168.55.2; Database=Sale1;Username=Admin;" + "Password=Qwe88888;Persist Security Info=true";

DataTable d = new DataTable("product");

private void Form18_Load(object sender, EventArgs e)

{

string Sel = "select key_product, name_product from public.product";

NpgsqlConnection NC = new NpgsqlConnection(Con);

NC.Open();

NpgsqlDataAdapter NA = new NpgsqlDataAdapter(Sel, NC);

NA.Fill(d);

listBox1.DataSource = d;

listBox1.DisplayMember = "name_product";

listBox1.ValueMember = "key_product";

NC.Close();

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

NpgsqlConnection NC = new NpgsqlConnection(Con);

NC.Open();

string SC = "select * from public.\"OrderPerProduct\"";

NpgsqlDataAdapter NA = new NpgsqlDataAdapter(SC, NC);

DataSet ds = new DataSet();

ds.Clear();

NA.Fill(ds, "public.\"OrderPerProduct\"");

DataView w = new DataView(ds.Tables["public.\"OrderPerProduct\""]);

w.RowFilter = "key_product ='" + System.Convert.ToString(d.Rows[listBox1.SelectedIndex][0]) + "'";

dataGrid1.DataSource = w;

ds.Tables[0].Columns[0].ColumnName = "Код клиента";

ds.Tables[0].Columns[1].ColumnName = "Фирма";

ds.Tables[0].Columns[2].ColumnName = "Фамилия";

ds.Tables[0].Columns[3].ColumnName = "Дата заказа";

ds.Tables[0].Columns[4].ColumnName = "Количество заказа";

ds.Tables[0].Columns[5].ColumnName = "Дата продажи";

ds.Tables[0].Columns[6].ColumnName = "Количество продажи";

ds.Tables[0].Columns[7].ColumnName = "Код продукта";

ds.Tables[0].Columns[8].ColumnName = "Название продукта";

NC.Close();

}

}

}

Контрольный пример:

Форма Заказы на заданную дату:

Форма Заказы покупателя:

Форма Заказы товара: