Лабораторная работа № 10
Задание:
Создать в базе данных Sale представление OrderPerDate, выбирающее заказы на заданную дату.
Создать в базе данных 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 Присвойте всем полям русскоязычные псевдонимы (кроме двух последних полей). Отсортируйте результат по коду клиента и дате заказа.
Создать в базе данных 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
Задание:
Создать проект, на главной форме проекта создать меню с пунктом Представления и подпунктами Заказы на заданную дату, Заказы покупателя, Заказы товара.
Добавить в проект три новые формы и озаглавить их соответственно подпунктам главного меню.
Подключить к проекту Nu-get пакет, позволяющий работать с провайдером баз данных PostgreSQL.
На форме Заказы на заданную дату обеспечить выбор даты с помощью элемента управления типа DateTimePicker или MonthCalendar (по выбору).
Обеспечить отображение заказов на заданную дату в табличной форме с помощью представления OrderPerDate.
На форме Заказы покупателя обеспечить отображение списка покупателей с помощью элемента управления типа ComboBox.
Обеспечить отображение заказов выбранного покупателя в табличной форме с помощью представления OrderPerClient.
На форме Заказы товара обеспечить отображение списка товаров с помощью элемента управления типа ListBox.
Обеспечить отображение заказов выбранного товара в табличной форме с помощью представления OrderPerProduct.
Обеспечить корректность закрытия всех форм проекта.
Текст программы:
Форма Заказы на заданную дату:
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();
}
}
}
Контрольный пример:
Форма Заказы на заданную дату:
Форма Заказы покупателя:
Форма Заказы товара: