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

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

Задание:

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

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

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

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

  5. При выборе покупателя из списка покупателей обеспечить отображение его заказов в табличной форме.

  6. В форме Заказы товара обеспечить отображение списка товаров в элементе типа ListBox.

  7. При выборе товара из списка товаров обеспечить отображение заказов данного товара в табличной форме.

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

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

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

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";

}

}

}

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

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

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