//On accept button click private void btnAccept_Click(object sender, EventArgs e) { if (IsValidData()) { if (addProducts) //add products mode { product = new Products(); Suppliers supplier = suppliers[cmbSuppliers.SelectedIndex]; this.PutProductDataAdd(product, supplier); try { product.ProductId = ProductDB.AddProducts(product); products_supplier.ProductSupplierId = Products_SupplierDB.AddProduct_Supplier(product, supplier); this.DialogResult = DialogResult.OK; } catch (SqlException ex) {//if sql error occoured switch (ex.Errors[0].Number) { case 2627: //if primary key error MessageBox.Show("You already added this Product", "Duplicate Error"); break; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } else if (editProdSup) //edit product supplier mode { if (rdAddNewProd.Checked == true) //if add product within this mode { product = new Products(); Suppliers supplier = suppliers[cmbSuppliers.SelectedIndex]; this.PutProductDataAdd(product, supplier); try { //Add the products product.ProductId = ProductDB.AddProducts(product); products_supplier.ProductSupplierId = Products_SupplierDB.AddProduct_Supplier(product, supplier); this.DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } else { //select from the combobox product = products[cmbSelectProd.SelectedIndex]; Suppliers supplier = suppliers[cmbSuppliers.SelectedIndex]; this.PutProductDataAdd(product, supplier); try { products_supplier.ProductSupplierId = Products_SupplierDB.AddProduct_Supplier(product, supplier); this.DialogResult = DialogResult.Yes; } catch (SqlException ex) { switch (ex.Errors[0].Number) { case 2627: //Primary key violation MessageBox.Show(products_supplier.ProdName + " is already supplied by " + products_supplier.SupName, "Duplicate Error"); break; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } } else //pure edit product mode { Products newProduct = new Products(); newProduct.ProductId = product.ProductId; this.PutProductDataEdit(newProduct); try { //Try to edit data if (!ProductDB.UpdateProduct(product, newProduct)) { MessageBox.Show("Another user has updated or " + "deleted that product.", "Database Error"); this.DialogResult = DialogResult.Retry; } else { //edit returns product = newProduct; this.DialogResult = DialogResult.OK; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } } }