Лабораторная работа № 8
Задание:
Создать в Visual Studio .Net проект, на главной форме проекта создать меню с пунктом Запросы и подпунктами Заказы покупателя и Заказы товара.
Подключить к проекту Nu-get пакет, позволяющий работать с провайдером баз данных PostgreSQL.
Добавить в проект две новые формы и озаглавить их соответственно подпунктам главного меню.
В форме Заказы покупателя обеспечить отображение списка покупателей в элементе типа ComboBox.
При выборе покупателя из списка покупателей обеспечить отображение его заказов в табличной форме.
В форме Заказы товара обеспечить отображение списка товаров в элементе типа ListBox.
При выборе товара из списка товаров обеспечить отображение заказов данного товара в табличной форме.
Обеспечить корректность закрытия всех форм проекта.
Текст программы:
Форма Заказы покупателя:
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 Form10 : Form
{
public Form10()
{
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 Form10_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);
comboBox1.DataSource = d;
comboBox1.DisplayMember = "name_product";
comboBox1.ValueMember = "key_product";
NC.Close();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string Sel = "WITH myconstants (p1) as (values (" + System.Convert.ToString(d.Rows[comboBox1.SelectedIndex][0]) + "))" +
"SELECT * from public.order,myconstants where key_product=p1";
NpgsqlConnection NC = new NpgsqlConnection(Con);
NC.Open();
NpgsqlDataAdapter NA = new NpgsqlDataAdapter(Sel, NC);
DataSet ds = new DataSet();
ds.Clear();
NA.Fill(ds, "order");
NC.Close();
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "order";
}
}
}
Форма Заказы товара:
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 Form11 : Form
{
public Form11()
{
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 Form11_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)
{
string Sel = "WITH myconstants (p1) as (values (" + System.Convert.ToString(d.Rows[listBox1.SelectedIndex][0]) + "))" +
"SELECT * from public.order,myconstants where key_product=p1";
NpgsqlConnection NC = new NpgsqlConnection(Con);
NC.Open();
NpgsqlDataAdapter NA = new NpgsqlDataAdapter(Sel, NC);
DataSet ds = new DataSet();
ds.Clear();
NA.Fill(ds, "order");
NC.Close();
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "order";
}
}
}
Контрольный пример:
Форма Заказы покупателя:
Форма Заказы товара: