using MySql.Data.MySqlClient; using System; using System.Data; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Admin : Form { string connectionString = "Server=85.239.57.125; Database=Gavrilov_Aksenov_exam; Uid=ISP41_Gavrilov; Pwd=ISP41_Gavrilov;"; public Admin() { InitializeComponent(); LoadOrders(); buttonAdd.Click += ButtonAdd_Click; buttonEdit.Click += ButtonEdit_Click; buttonDelete.Click += ButtonDelete_Click; textBoxSearch.TextChanged += TextBoxSearch_TextChanged; comboBoxFilter.SelectedIndexChanged += ComboBoxFilter_SelectedIndexChanged; comboBoxSort.SelectedIndexChanged += ComboBoxSort_SelectedIndexChanged; } void LoadOrders() { using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); string query = "SELECT o.id, o.order_number, u.full_name, s.name as status, o.pickup_address, o.order_date, o.delivery_date FROM orders o JOIN users u ON o.user_id = u.id JOIN status s ON o.status = s.idstatus"; MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt; } } void ButtonAdd_Click(object sender, EventArgs e) { OrderEditForm form = new OrderEditForm(connectionString, null); if (form.ShowDialog() == DialogResult.OK) { LoadOrders(); } } void ButtonEdit_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["id"].Value); OrderEditForm form = new OrderEditForm(connectionString, id); if (form.ShowDialog() == DialogResult.OK) { LoadOrders(); } } } void ButtonDelete_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["id"].Value); using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); string query = "DELETE FROM orders WHERE id = @id"; MySqlCommand cmd = new MySqlCommand(query, conn); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); } LoadOrders(); } } void TextBoxSearch_TextChanged(object sender, EventArgs e) { FilterAndSort(); } void ComboBoxFilter_SelectedIndexChanged(object sender, EventArgs e) { FilterAndSort(); } void ComboBoxSort_SelectedIndexChanged(object sender, EventArgs e) { FilterAndSort(); } void FilterAndSort() { string search = textBoxSearch.Text; string filter = comboBoxFilter.Text; string sort = comboBoxSort.Text; string query = "SELECT o.id, o.order_number, u.full_name, s.name as status, o.pickup_address, o.order_date, o.delivery_date FROM orders o JOIN users u ON o.user_id = u.id JOIN status s ON o.status = s.idstatus WHERE 1=1"; if (!string.IsNullOrEmpty(search)) { if (filter == "По имени") { query += " AND u.full_name LIKE '%" + search + "%'"; } else if (filter == "По категории") { query += " AND o.order_number LIKE '%" + search + "%'"; } else { query += " AND (o.order_number LIKE '%" + search + "%' OR u.full_name LIKE '%" + search + "%')"; } } if (sort == "По имени А-Я") { query += " ORDER BY u.full_name ASC"; } else if (sort == "По имени Я-А") { query += " ORDER BY u.full_name DESC"; } else if (sort == "По цене возр.") { query += " ORDER BY o.order_date ASC"; } else if (sort == "По цене убыв.") { query += " ORDER BY o.order_date DESC"; } using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt; } } private void button1_Click(object sender, EventArgs e) { Author form1 = new Author(); form1.Show(); this.Hide(); } } }