demMalyhin_Merkulov/AdmOrder.cs

176 lines
6.8 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}
}