/
DaNN26
/
sql-utility-manager
Обзор
Документация
Войти
/
DaNN26
/
sql-utility-manager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Demo/EditForm.cs
180 строк
7 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.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Demo { public partial class EditForm : Form { DatabaseHelper db = new DatabaseHelper(); private string art; private MainForm mainForm; public EditForm(string id, MainForm form) { InitializeComponent(); art = id; LoadProduct(); LoadCategory(); LoadSupplier(); LoadProducer(); LoadUnit(); mainForm = form; } private void LoadProduct() { string sql = $"SELECT " + $"p.Наименование_товара, " + $"cat.title AS Категория, " + $"p.Описание_товара, " + $"pdc.title AS Производитель, " + $"sup.title AS Поставщик, " + $"p.Цена, " + $"un.title AS Единица_измерения, " + $"p.Кол_во_на_складе, " + $"p.Действующая_скидка " + $"FROM product p " + $"JOIN category cat ON cat.id = Категория_товара " + $"JOIN producer pdc ON pdc.id = Производитель " + $"JOIN supplier sup ON sup.id = Поставщик " + $"JOIN unit un ON un.id = Единица_измерения " + $"WHERE Артикул = '{art}'"; DataTable table = db.GetData(sql); titleTextBox.Text = table.Rows[0]["Наименование_товара"].ToString(); categoryComboBox.Text = table.Rows[0]["Категория"].ToString(); descTextBox.Text = table.Rows[0]["Описание_товара"].ToString(); producerComboBox.Text = table.Rows[0]["Производитель"].ToString(); supplierComboBox.Text = table.Rows[0]["Поставщик"].ToString(); priceTextBox.Text = table.Rows[0]["Цена"].ToString(); unitComboBox.Text = table.Rows[0]["Единица_измерения"].ToString(); amountTextBox.Text = table.Rows[0]["Кол_во_на_складе"].ToString(); discountTextBox.Text = table.Rows[0]["Действующая_скидка"].ToString(); } public void EditButton_Click(object sender, EventArgs e) { string title = titleTextBox.Text; string category = categoryComboBox.Text; string description = descTextBox.Text; string producer = producerComboBox.Text; string supplier = supplierComboBox.Text; string price = priceTextBox.Text; string unit = unitComboBox.Text; string amount = amountTextBox.Text; string discount = discountTextBox.Text; if (string.IsNullOrEmpty(title) || string.IsNullOrEmpty(category) || string.IsNullOrEmpty(description) || string.IsNullOrEmpty(producer) || string.IsNullOrEmpty(supplier) || string.IsNullOrEmpty(price) || string.IsNullOrEmpty(unit) || string.IsNullOrEmpty(amount) || string.IsNullOrEmpty(discount)) { MessageBox.Show("Заполните пустые поля!"); return; } if (!price.All(Char.IsDigit) || !amount.All(Char.IsDigit) || !discount.All(Char.IsDigit)) { MessageBox.Show("Цена, Количество на складе и Скидка должны быть численными значениями!"); return; } else if (discount.All(Char.IsDigit)) { if (Int32.Parse(discount) > 100) { MessageBox.Show("Скидка не может быть больше 100!"); return; } } string categoryId = db.GetData(@"SELECT id FROM category WHERE title = + '" + category + "'").Rows[0]["id"].ToString(); string producerId = db.GetData(@"SELECT id FROM producer WHERE title = + '" + producer + "'").Rows[0]["id"].ToString(); string supplierId = db.GetData(@"SELECT id FROM supplier WHERE title = + '" + supplier + "'").Rows[0]["id"].ToString(); string unitId = db.GetData(@"SELECT id FROM unit WHERE title = + '" + unit + "'").Rows[0]["id"].ToString(); string sql = $"UPDATE product SET " + $"Наименование_товара = '{title}', " + $"Категория_товара = '{categoryId}', " + $"Описание_товара = '{description}', " + $"Производитель = '{producerId}', " + $"Поставщик = '{supplierId}', " + $"Цена = '{price}', " + $"Единица_измерения = '{unitId}', " + $"Кол_во_на_складе = '{amount}', " + $"Действующая_скидка = '{discount}' " + $"WHERE Артикул = '{art}'"; db.RunCommand(sql); MessageBox.Show($"Товар {title} успешно обновлен."); mainForm.LoadProducts(); this.Close(); } private void LoadCategory() { DataTableReader categoryReader = db.GetData("SELECT title FROM category").CreateDataReader(); while (categoryReader.Read()) { categoryComboBox.Items.Add(categoryReader["title"].ToString()); } } private void LoadSupplier() { DataTableReader supplierReader = db.GetData("SELECT title FROM supplier").CreateDataReader(); while (supplierReader.Read()) { supplierComboBox.Items.Add(supplierReader["title"].ToString()); } } private void LoadProducer() { DataTableReader producerReader = db.GetData("SELECT title FROM producer").CreateDataReader(); while (producerReader.Read()) { producerComboBox.Items.Add(producerReader["title"].ToString()); } } private void LoadUnit() { DataTableReader unitReader = db.GetData("SELECT title FROM unit").CreateDataReader(); while (unitReader.Read()) { unitComboBox.Items.Add(unitReader["title"].ToString()); } } private void deleteButton_Click(object sender, EventArgs e) { string sql = $"DELETE FROM product WHERE Артикул = '{art}'"; var confirmResult = MessageBox.Show("Вы уверены? Это действие необратимо.", "Подтверждение удаления", MessageBoxButtons.YesNo); if (confirmResult == DialogResult.Yes) { db.RunCommand(sql); mainForm.LoadProducts(); this.Close(); } } } }