private void ButtonExit_Click(object sender, RoutedEventArgs e) { string check = ""; foreach (HelpStruct row in productslistGrid.Items) { check = row.Name_Of_Material; if (check == null) { System.Windows.MessageBox.Show("Все поля не заполнены!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); break; } } if (check != null) { this.Close(); } else { this.Close(); Window listMaterials = new OrderListOfMaterialsForProduct(productId); listMaterials.ShowDialog(); } }
// Вызов сохранения и прогон по всей логике public bool Save(MySqlConnection connection) { string warning = CheckData(); if (warning == "") { connection.Open(); MySqlTransaction transaction = connection.BeginTransaction(); // Получение id продукта по его названию string queryProduct = "select id_product from products where Name_Of_Product = @name; "; MySqlCommand commandProduct = new MySqlCommand(queryProduct, connection); commandProduct.Parameters.AddWithValue("@name", product); int productId = -1; using (DbDataReader reader = commandProduct.ExecuteReader()) { while (reader.Read()) { productId = reader.GetInt32(0); } } // Если не нашли изделие, то выходим из сохранения if (productId == -1) { MessageBox.Show("Ошибка добавления", "Продукта с наименованием " + product + " не обнаружено в базе.", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } string query = "insert into list_products_to_order (Orders_id_Order, Products_id_Product, Count) values (@orderId, @productId, @count); "; MySqlCommand command = new MySqlCommand(query, connection, transaction); command.Parameters.AddWithValue("@orderId", idOrder); command.Parameters.AddWithValue("@count", count); command.Parameters.AddWithValue("@productId", productId); try { command.ExecuteNonQuery(); transaction.Commit(); } catch { transaction.Rollback(); MessageBox.Show("Ошибка добавления", "Ошибка внутри транзакции", MessageBoxButton.OK, MessageBoxImage.Error); } ///////////////////// connection.Close(); // ОТКРЫТИЕ ФОРМЫ СПИСКА МАТЕРИАЛОВ ДЛЯ ИЗДЕЛИЯ (Конструктор изделия?) Window listMaterials = new OrderListOfMaterialsForProduct(productId); listMaterials.ShowDialog(); // return(true); } else { MessageBox.Show(warning, "Не заполнены обязательные поля", MessageBoxButton.OK, MessageBoxImage.Error); } return(false); }