using MySql.Data.MySqlClient; using NeshinaPolina2111; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Linq; namespace NeshinaPolina2111 { public partial class AddMaterials : Form { public AddMaterials() { InitializeComponent(); LoadTypes(); LoadUnits(); } private void AddMaterials_Load(object sender, EventArgs e) { } private void btnAdd_Click(object sender, EventArgs e) { //ПРОВЕРКИ if (string.IsNullOrWhiteSpace(txtName.Text)) { MessageBox.Show("Введите название материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (cmbType.SelectedValue == null || cmbUnit.SelectedValue == null) { MessageBox.Show("Выберите тип материала и единицу измерения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } decimal price; int quantity, minQuantity, quantityPack; if (!decimal.TryParse(txtPrice.Text, out price) || price < 0) { MessageBox.Show("Цена должна быть числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!int.TryParse(txtQuantity.Text, out quantity) || quantity < 0) { MessageBox.Show("Количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!int.TryParse(txtMinQuantity.Text, out minQuantity) || minQuantity< 0) { MessageBox.Show("Минимальное количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!int.TryParse(txtQuantityPack.Text, out quantityPack) || quantityPack< 0) { MessageBox.Show("Количество в упаковке должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //ВСТАВИТЬ В БД string insertQuery = @" INSERT INTO Materials_import ( Name, idMaterial_type_import, PriceUnitMaterial, Quantity, MinQuantity, QuantityPack, idUnit ) VALUES ( @Name, @idMaterial_type_import, @PriceUnitMaterial, @Quantity, @MinQuantity, @QuantityPack, @idUnit )"; var conn = DB.GetInstance().GetConnection(); if (conn.State == ConnectionState.Closed) conn.Open(); using (var cmd = new MySqlCommand(insertQuery, conn)) { cmd.Parameters.AddWithValue("@Name", txtName.Text.Trim()); cmd.Parameters.AddWithValue("@idMaterial_type_import", cmbType.SelectedValue); cmd.Parameters.AddWithValue("@PriceUnitMaterial", price); cmd.Parameters.AddWithValue("@Quantity", quantity); cmd.Parameters.AddWithValue("@MinQuantity", minQuantity); cmd.Parameters.AddWithValue("@QuantityPack", quantityPack); cmd.Parameters.AddWithValue("@idUnit", cmbUnit.SelectedValue); try { int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("Материал успешно добавлен!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; Close(); } else { MessageBox.Show("Не удалось добавить материал.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { MessageBox.Show($"Ошибка при добавлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void LoadTypes() //ЗАГРУЗКА ТИПОВ В КОМБО { string query = "SELECT idMaterial_type_import, Name FROM Material_type_import ORDER BY Name"; var conn = DB.GetInstance().GetConnection(); if (conn.State == ConnectionState.Closed) conn.Open(); using (var cmd = new MySqlCommand(query, conn)) { var adapter = new MySqlDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); cmbType.DisplayMember = "Name"; cmbType.ValueMember = "idMaterial_type_import"; cmbType.DataSource = dt; } } private void LoadUnits() //В КОМБОБОКС ЕДИНИЦЫ ЗАГРУЗИТЬ { string query = "SELECT idUnit, Name FROM Unit ORDER BY Name"; var conn = DB.GetInstance().GetConnection(); if (conn.State == ConnectionState.Closed) conn.Open(); using (var cmd = new MySqlCommand(query, conn)) { var adapter = new MySqlDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); cmbUnit.DisplayMember = "Name"; cmbUnit.ValueMember = "idUnit"; cmbUnit.DataSource = dt; } } private void btnExit_Click(object sender, EventArgs e) { this.Hide(); } } }