private void DeleteOrder_Button_Click(object sender, RoutedEventArgs e) { try { var index = dataGrid_Orders.SelectedIndex; // Проверка на то, что была выделена ячейка if (index > -1) { if (MessageBox.Show("Вы действительно хотите удалить заказ?", "Удаление заказа", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { // При выборе строки получение ID заказа object item = dataGrid_Orders.SelectedItem; int orders_id_temp = Convert.ToInt32((dataGrid_Orders.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text); // Определение list_of_order_items int list_of_order_items_temp = 0; using (OrdersdbEntities db = new OrdersdbEntities()) { list_of_order_items_temp = db.Orders.Where(x => x.orders_id == orders_id_temp).Select(x => x.list_of_order_items).DefaultIfEmpty().Single(); Debug.WriteLine(list_of_order_items_temp); //List_of_order_items list_of_order_items = new List_of_order_items() { list_of_order_items__id = list_of_order_items_temp }; //db.List_of_order_items.Attach(list_of_order_items); //db.List_of_order_items.Remove(list_of_order_items); //db.SaveChanges(); db.Database.ExecuteSqlCommand("DELETE FROM [dbo].[List_of_order_items] WHERE [list_of_order_items__id] = {0}", new object[] { list_of_order_items_temp }); } using (OrdersdbEntities db = new OrdersdbEntities()) { Order order = new Order() { orders_id = orders_id_temp }; db.Orders.Attach(order); db.Orders.Remove(order); db.SaveChanges(); } Load_dataGrid_Orders(); dataGrid_List_of_order_items.ItemsSource = null; } } } catch (Exception e2) { MessageBox.Show(e2.Message, "DeleteOrder_Button_Click", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void SaveEditOrder_Button_Click(object sender, RoutedEventArgs e) { try { using (OrdersdbEntities db = new OrdersdbEntities()) { // 1. Внесение изменений в таблицу Order if (TextBox_NameClient.Text != "") { var nameClient = db.Orders .Where(x => x.orders_id == orders_id_temp_EditOrder) .FirstOrDefault(); nameClient.name_client = TextBox_NameClient.Text; db.SaveChanges(); // 2. Внесение изменений в таблицу List_of_order_items // Удаление существующих записей с ID: list_of_order_items_temp_EditOrder // var list_of_order_items_temp = db.List_of_order_items // .Where(x => x.list_of_order_items__id == list_of_order_items_temp_EditOrder) // .FirstOrDefault(); //db.List_of_order_items.Remove(list_of_order_items_temp); //db.SaveChanges(); db.Database.ExecuteSqlCommand("DELETE FROM [dbo].[List_of_order_items] WHERE [list_of_order_items__id] = {0}", new object[] { list_of_order_items_temp_EditOrder }); // Выборка данных из List_of_order_items и запись в таблицу List_of_order_items //foreach (var item in dataGrid_EditOrder.Items.OfType<Item>()) //{ // List_of_order_items list_of_order_items = new List_of_order_items(); // list_of_order_items.list_of_order_items__id = list_of_order_items_temp_EditOrder; // list_of_order_items.item_product_id = item.product_id; // list_of_order_items.item_count = Convert.ToInt32(item.item_count); // db.List_of_order_items.Add(list_of_order_items); //} foreach (var u in col) { //dataGrid_EditOrder.Items.Add(new Item() { product_id = u.product_id, product_name = u.product_name, item_count = u.item_count1.ToString() }); List_of_order_items list_of_order_items = new List_of_order_items(); list_of_order_items.list_of_order_items__id = list_of_order_items_temp_EditOrder; list_of_order_items.item_product_id = db.Products.Where(x => x.product_name == u.product_name).Select(x => x.product_id).FirstOrDefault(); list_of_order_items.item_count = Convert.ToInt32(u.item_count); db.List_of_order_items.Add(list_of_order_items); } db.SaveChanges(); // Закрытие окна MessageBox.Show("Данные успешно изменены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information); this.Close(); } else { MessageBox.Show("Поле \"ФИО клиента\" пустое", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } catch (Exception e1) { MessageBox.Show(e1.Message, "SaveEditOrder_Button_Click", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void CreateOrder_Button_Click(object sender, RoutedEventArgs e) { // id списка позиций клиента int list_of_order_itemsMAX = 0; try { using (OrdersdbEntities db = new OrdersdbEntities()) { // Получить максимальное число list_of_order_items list_of_order_itemsMAX = db.Orders.Select(x => x.list_of_order_items).Max(); } } catch (Exception e1) { MessageBox.Show(e1.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error); } list_of_order_itemsMAX++; // Проверка заполнения полей формы if (NameClient_TextBox.Text == "" || dataGrid_List_of_order_items.Items.Count == 0) { MessageBox.Show("Введите в поле ФИО клиента значение или у Вас 0 позиций заказа", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); } else { try { // Выборка данных из dataGrid_List_of_order_items и запись в таблицу List_of_order_items foreach (var item in dataGrid_List_of_order_items.Items.OfType <Item>()) { List_of_order_items list_of_order_items = new List_of_order_items(); list_of_order_items.list_of_order_items__id = list_of_order_itemsMAX; list_of_order_items.item_product_id = item.product_id; list_of_order_items.item_count = Convert.ToInt32(item.item_count); using (OrdersdbEntities db = new OrdersdbEntities()) { db.List_of_order_items.Add(list_of_order_items); db.SaveChanges(); } } // Подготовка и запись в таблицу Order Order order = new Order(); order.date = DateTime.Now; order.name_client = NameClient_TextBox.Text; order.list_of_order_items = list_of_order_itemsMAX; using (OrdersdbEntities db = new OrdersdbEntities()) { db.Orders.Add(order); db.SaveChanges(); } MessageBox.Show("Данные успешно обновлены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information); // Обновить датагрид //MainWindow wnd = new MainWindow(); //wnd.Load_dataGrid_Orders(); // закрыть окно this.Close(); } catch (Exception e1) { MessageBox.Show(e1.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error); } } }