//удаление данных выбранной записи из таблиц бд private void roundBtnDelete_Click(object sender, EventArgs e) { if (TableOrders.SelectedRows.Count == 1) { string message = $"Вы действительно хотите удалить данную запись?\nОтменить это действие будет невозможно!"; string caption = "Удаление записи"; MessageBoxButtons buttons = MessageBoxButtons.YesNo; DialogResult result; result = MessageBox.Show(message, caption, buttons); if (result == DialogResult.Yes) { using (SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-9IUFQMM\SQLEXPRESS;Initial Catalog=PateticoPractic;Integrated Security=True")) { try { string s = comboBoxStatus.GetItemText(comboBoxStatus.SelectedItem); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "DELETE FROM [Orders] WHERE id_order = @ID"; cmd.Parameters.AddWithValue(@"ID", ID); cmd.ExecuteScalar(); TableOrders.Refresh(); MessageBox.Show("Запись удалена!"); SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT bs.id_basket, u.email, o.final_price, s.address, s.time_of_work, o.delivery_date, st.status, o.id_order FROM Orders AS o INNER JOIN Basket AS bs ON bs.id_basket = o.id_basket INNER JOIN Shops as s ON s.id_shop = o.id_shop INNER JOIN Users as u ON u.id_user = bs.id_user INNER JOIN Status as st ON st.id_status = o.id_status", conn); DataTable dataTable = new DataTable(); dataAdapter.Fill(dataTable); TableOrders.DataSource = dataTable; TableOrders.Refresh(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); } } } else { MessageBox.Show("Запись не удалена!"); } } else { if (TableOrders.SelectedRows.Count == 0) { MessageBox.Show("Вы не выбрали строку для удаления!"); } else { MessageBox.Show("Выберите ТОЛЬКО ОДНУ строку для удаления!"); } } }
//загрузка данных записей из таблиц бд при открытии формы private void Orders_Load(object sender, EventArgs e) { // TODO: данная строка кода позволяет загрузить данные в таблицу "pateticoPracticDataSet.Status". При необходимости она может быть перемещена или удалена. statusTableAdapter.Fill(pateticoPracticDataSet.Status); // TODO: данная строка кода позволяет загрузить данные в таблицу "pateticoPracticDataSet.Orders". При необходимости она может быть перемещена или удалена. ordersTableAdapter.Fill(pateticoPracticDataSet.Orders); using (SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-9IUFQMM\SQLEXPRESS;Initial Catalog=PateticoPractic;Integrated Security=True")) { string query = "SELECT bs.id_basket, u.email, o.final_price, s.address, s.time_of_work, o.delivery_date, st.status, o.id_order FROM Orders AS o INNER JOIN Basket AS bs ON bs.id_basket = o.id_basket INNER JOIN Shops as s ON s.id_shop = o.id_shop INNER JOIN Users as u ON u.id_user = bs.id_user INNER JOIN Status as st ON st.id_status = o.id_status"; try { conn.Open(); SqlCommand command = new SqlCommand(query, conn); SqlDataReader reader = command.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); conn.Close(); TableOrders.DataSource = dt; TableOrders.Update(); TableOrders.Columns[0].Width = 70; TableOrders.Columns[1].Width = 210; TableOrders.Columns[2].Width = 80; TableOrders.Columns[3].Width = 180; TableOrders.Columns[4].Width = 110; TableOrders.Columns[5].Width = 110; TableOrders.Columns[6].Width = 77; TableOrders.Columns[7].Width = 77; TableOrders.Columns[0].HeaderText = "Номер корзины"; TableOrders.Columns[1].HeaderText = "Эл. почта клиента"; TableOrders.Columns[2].HeaderText = "Сумма к оплате"; TableOrders.Columns[3].HeaderText = "Адрес магазина"; TableOrders.Columns[4].HeaderText = "Время работы магазина"; TableOrders.Columns[5].HeaderText = "Дата доставки"; TableOrders.Columns[6].HeaderText = "Статус заказа"; TableOrders.Columns[7].Visible = false; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); } } }
//загрузка данных записей из таблиц бд при открытии формы private void OrderInfo_Load(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-9IUFQMM\SQLEXPRESS;Initial Catalog=PateticoPractic;Integrated Security=True")) { string query = "SELECT o.id_order, bs.id_basket, p.parameter, pr.product_name, pr.description, pr.price, pr.weight, bspr.count FROM Orders AS o " + "INNER JOIN Basket AS bs ON bs.id_basket = o.id_basket INNER JOIN BasketProduct as bspr ON bspr.id_basket = bs.id_basket " + "INNER JOIN Products as pr ON pr.id_product = bspr.id_product INNER JOIN Parameters as p ON p.id_parameter = pr.id_parameter WHERE o.id_order = @ID"; try { conn.Open(); SqlCommand command = new SqlCommand(query, conn); command.Parameters.AddWithValue(@"ID", IDOrder); SqlDataReader reader = command.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); conn.Close(); TableOrders.DataSource = dt; TableOrders.Update(); TableOrders.Columns[1].Width = 80; TableOrders.Columns[2].Width = 120; TableOrders.Columns[3].Width = 180; TableOrders.Columns[4].Width = 220; TableOrders.Columns[5].Width = 80; TableOrders.Columns[6].Width = 77; TableOrders.Columns[7].Width = 77; TableOrders.Columns[0].Visible = false; TableOrders.Columns[1].HeaderText = "Номер корзины"; TableOrders.Columns[2].HeaderText = "Категория товара"; TableOrders.Columns[3].HeaderText = "Название товара"; TableOrders.Columns[4].HeaderText = "Описание товара"; TableOrders.Columns[5].HeaderText = "Цена"; TableOrders.Columns[6].HeaderText = "Вес"; TableOrders.Columns[7].HeaderText = "Кол-во"; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); } } }
//поиск по статусу заказа, выбранному в выпадающем списке private void roundBtnSearch_Click(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-9IUFQMM\SQLEXPRESS;Initial Catalog=PateticoPractic;Integrated Security=True")) { try { string s = comboBoxStatus.GetItemText(comboBoxStatus.SelectedItem); conn.Open(); SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT bs.id_basket, u.email, o.final_price, s.address, s.time_of_work, o.delivery_date, st.status FROM Orders AS o INNER JOIN Basket AS bs ON bs.id_basket = o.id_basket INNER JOIN Shops as s ON s.id_shop = o.id_shop INNER JOIN Users as u ON u.id_user = bs.id_user INNER JOIN Status as st ON st.id_status = o.id_status WHERE st.status like '%" + s + "%'", conn); DataTable dataTable = new DataTable(); dataAdapter.Fill(dataTable); TableOrders.DataSource = dataTable; TableOrders.Refresh(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); } } }