/
DaNN26
/
sql-utility-manager
Обзор
Документация
Войти
/
DaNN26
/
sql-utility-manager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Demo/MainForm.cs
177 строк
6 KB
DaNN
Добавьте файлы проекта.
25 май 2026, 17:03
25 май 2026, 17:03
9efb65a
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Demo { public partial class MainForm: Form { DatabaseHelper db = new DatabaseHelper(); private string fullname; public string role; public MainForm(string fullname, string role) { InitializeComponent(); this.fullname = fullname; this.role = role; LoadSuppliers(); LoadProducts(); lblFullName.Text = fullname; if (role == "Гость" || role == "Авторизированный клиент") { searchTextBox.Hide(); sortButton.Hide(); supplierComboBox.Hide(); } if (role == "Гость" || role == "Авторизированный клиент" || role == "Менеджер") { addProductButton.Hide(); } } public void LoadProducts() { flowLayoutPanel1.Controls.Clear(); string search = searchTextBox.Text.Trim(); string supplier = supplierComboBox.Text; string sql = "SELECT " + "p.Артикул, " + "p.Наименование_товара, " + "cat.title AS Категория, " + "sup.title AS Поставщик, " + "pdc.title AS Производитель, " + "un.title AS Единица_измерения, " + "p.Описание_товара, " + "p.Цена, " + "p.Действующая_скидка, " + "p.Действующая_скидка, " + "p.Фото," + "p.Кол_во_на_складе " + "FROM product p " + "JOIN category cat ON p.Категория_товара = cat.id " + "JOIN supplier sup ON p.Поставщик = sup.id " + "JOIN producer pdc ON p.Производитель = pdc.id " + "JOIN unit un ON p.Единица_измерения = un.id " + "WHERE 1=1 "; if (!string.IsNullOrEmpty(search)) { sql += $@" AND ( Наименование_товара LIKE '%{search}%' OR cat.title LIKE '%{search}%' OR Описание_товара LIKE '%{search}%' OR pdc.title LIKE '%{search}%' OR sup.title LIKE '%{search}%' )"; } if (supplier != "Все поставщики") { sql += $" AND sup.title = '{supplier}'"; } if (sortButton.Text == "Отсортировать по возрастанию") { sql += " ORDER BY [Кол_во_на_складе] ASC"; } else { sql += " ORDER BY [Кол_во_на_складе] DESC"; } DataTableReader reader = db.GetData(sql).CreateDataReader(); while (reader.Read()) { ProductUserControl item = new ProductUserControl(reader["Артикул"].ToString(), this); item.SetProduct( reader["Наименование_товара"].ToString(), reader["Категория"].ToString(), reader["Описание_товара"].ToString(), reader["Производитель"].ToString(), reader["Поставщик"].ToString(), reader["Единица_измерения"].ToString(), Convert.ToDecimal(reader["Цена"]), Convert.ToInt32(reader["Действующая_скидка"]), Convert.ToInt32(reader["Кол_во_на_складе"]), reader["Фото"].ToString() ); flowLayoutPanel1.Controls.Add(item); } } public void LoadSuppliers() { supplierComboBox.Items.Clear(); supplierComboBox.Items.Add("Все поставщики"); DataTableReader reader = db.GetData("SELECT title FROM supplier").CreateDataReader(); while (reader.Read()) { supplierComboBox.Items.Add(reader["title"].ToString()); } supplierComboBox.SelectedIndex = 0; } private void goToAuthButton_Click(object sender, EventArgs e) { AuthForm authForm = new AuthForm(); authForm.Show(); this.Close(); } private void lblFullName_Click(object sender, EventArgs e) { } private void sortButton_Click(object sender, EventArgs e) { if (sortButton.Text == "Отсортировать по возрастанию") { sortButton.Text = "Отсортировать по убыванию"; } else { sortButton.Text = "Отсортировать по возрастанию"; } LoadProducts(); } private void searchTextBox_TextChanged(object sender, EventArgs e) { LoadProducts(); } private void supplierComboBox_SelectedIndexChanged(object sender, EventArgs e) { LoadProducts(); } private void addProductButton_Click(object sender, EventArgs e) { AddForm addForm = new AddForm(fullname, role); addForm.Show(); this.Close(); } } }