using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; namespace demMalyhin { public partial class AdmOrder : Form { private MySqlDataAdapter dataAdapter; private DataTable prodTable; private BindingSource bindingSource = new BindingSource(); public AdmOrder() { InitializeComponent(); LoadProdData(); } private void LoadProdData() // загрузка данных в дгв { try { DB db = new DB(); using (MySqlConnection connection = db.getConnection()) { connection.Open(); string query = "SELECT id_Orders AS `Идентификатор`, order_date AS `Дата заказа`, delivery_date AS `Дата доставки`, pickup_points.index AS `Почтовый индекс`, pickup_points.street AS `Улица`, pickup_points.city AS `Город`, pickup_points.house_number AS `Номер здания`, users.Surname AS `Фамилия клиента`, users.Name AS `Имя клиента`, users.Patronymic AS `Отчество`, Orders.code AS `Код заказа`, OrderStatus.status_name AS `Статус заказа` FROM Orders LEFT JOIN pickup_points ON Orders.pickup_point_id = pickup_points.idpickup_points JOIN users ON Orders.user_initials_id = users.id_users JOIN OrderStatus ON Orders.orderstatus_id = OrderStatus.id_OrderStatus"; dataAdapter = new MySqlDataAdapter(query, connection); prodTable = new DataTable(); dataAdapter.Fill(prodTable); DataGridViewProduct.RowTemplate.Height = 60; bindingSource.DataSource = prodTable; DataGridViewProduct.DataSource = bindingSource; DataGridViewProduct.AllowUserToAddRows = false; DataGridViewProduct.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; DataGridViewProduct.ReadOnly = true; // настройки дгв } } catch (MySqlException ex) { MessageBox.Show("Ошибка при подключении к базе данных или выполнении запроса: " + ex.Message); } catch (Exception ex) { MessageBox.Show("Произошла общая ошибка: " + ex.Message); } } private void button1_Click(object sender, EventArgs e) { this.Close(); AdmAddOrder addProductForm = new AdmAddOrder(); DialogResult result = addProductForm.ShowDialog(); if (result == DialogResult.OK) { LoadProdData(); } } private void button2_Click(object sender, EventArgs e) { if (DataGridViewProduct.SelectedRows.Count > 0) { string articleToEdit = Convert.ToString(DataGridViewProduct.SelectedRows[0].Cells["Идентификатор"].Value); this.Close(); AdmEditOrder editProductForm = new AdmEditOrder(articleToEdit); DialogResult result = editProductForm.ShowDialog(); if (result == DialogResult.OK) { LoadProdData(); } } else { MessageBox.Show("Пожалуйста, выберите строку для редактирования."); } } private void btnBack_Click(object sender, EventArgs e) { this.Close(); AdmMainForm mainForm = new AdmMainForm(); mainForm.Show(); } private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); } private void btnDelete_Click(object sender, EventArgs e) { if (DataGridViewProduct.SelectedRows.Count > 0) { int rowIndex = DataGridViewProduct.SelectedRows[0].Index; string idToDelete = Convert.ToString(DataGridViewProduct.SelectedRows[0].Cells["Идентификатор"].Value); DialogResult result = MessageBox.Show( "Вы действительно хотите удалить заказ с идентификатором '" + idToDelete + "'?", "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Question // Используем иконку вопроса ); // Проверяем, нажал ли пользователь "Да" if (result == DialogResult.Yes) { // Если пользователь подтвердил, вызываем метод удаления DeleteData(idToDelete); } } else { MessageBox.Show("Пожалуйста, выберите строку для удаления."); } } private void DeleteData(string idToDelete) { try { DB db = new DB(); using (MySqlConnection connection = db.getConnection()) { connection.Open(); string query = "DELETE FROM Orders WHERE id_Orders = @id"; using (MySqlCommand command = new MySqlCommand(query, connection)) { command.Parameters.AddWithValue("@id", idToDelete); int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("Запись успешно удалена."); LoadProdData(); } else { MessageBox.Show("Не удалось удалить запись."); } } } } catch (MySqlException ex) { MessageBox.Show("Ошибка при подключении к базе данных или выполнении запроса удаления: " + ex.Message); } catch (Exception ex) { MessageBox.Show("Произошла общая ошибка при удалении: " + ex.Message); } } } }