private void BEdit_Click(object sender, EventArgs e) { try { using (var context = new MyDbContext()) { int indexRow = dataGridView.CurrentCell.RowIndex; int id = Convert.ToInt32(dataGridView.Rows[indexRow].Cells[0].Value); if (Material == true) { Material material = db.Materials.Find(id); editMaterial editmaterial = new editMaterial(); editmaterial.TBPrice.Text = material.GramPrice.ToString(); DialogResult result = editmaterial.ShowDialog(this); // в свойствах DialogRisult указать ОК if (result == DialogResult.Cancel) { return; } material.GramPrice = Convert.ToInt32(editmaterial.TBPrice.Text); db.SaveChanges(); UpdateDataGridViewMaterial(); // обновление GridV MessageBox.Show("МАТЕРИАЛ ИЗМЕНЕН"); } else if (Product == true) { Product product = db.Products.Find(id); editProduct editProduct = new editProduct(); editProduct.TBPrice.Text = product.Price.ToString(); // чтобы поля были видны в свойствах нужно поменять private на internal editProduct.TBWeight.Text = product.Weight.ToString(); editProduct.TitleIds = product.TitleId; editProduct.MaterialIds = product.MaterialId; DialogResult result = editProduct.ShowDialog(this); // в свойствах DialogRisult указать ОК if (result == DialogResult.Cancel) { return; } var query = context.Products.Where(x => x.MaterialId == editProduct.MaterialIds && x.TitleId == editProduct.TitleIds); if (query.ToList().Count > 0) { MessageBox.Show("ТАКОЕ ИЗДЕЛИЕ УЖЕ СУЩЕСТВУЕТ"); } else { product.Price = Convert.ToInt32(editProduct.TBPrice.Text); product.Weight = Convert.ToInt32(editProduct.TBWeight.Text); product.TitleId = editProduct.TitleIds; product.MaterialId = editProduct.MaterialIds; db.SaveChanges(); UpdateDataGridViewProduct(); // обновление GridV MessageBox.Show("МАТЕРИАЛ ИЗМЕНЕН"); } } else if (Title == true) { Title title = db.Titles.Find(id); editTitle edittitle = new editTitle(); edittitle.TBName.Text = title.Name; // чтобы поля были видны в свойствах нужно поменять private на internal edittitle.TBType.Text = title.Type; DialogResult result = edittitle.ShowDialog(this); // в свойствах DialogRisult указать ОК if (result == DialogResult.Cancel) { return; } var query = context.Titles.Where(x => x.Name == edittitle.TBName.Text && x.Type == edittitle.TBType.Text); if (query.ToList().Count > 0) { MessageBox.Show("ТАКОЕ ИЗДЕЛИЕ УЖЕ СУЩЕСТВУЕТ"); } else { title.Name = edittitle.TBName.Text; title.Type = edittitle.TBType.Text; db.SaveChanges(); UpdateDataGridViewTitle(); // обновление GridV MessageBox.Show("ИЗДЕЛИЕ ИЗМЕНЕНО"); } } else if (Sale == true) { Sale sale = db.Sales.Find(id); editSale editsale = new editSale(); editsale.TBSName.Text = sale.SName.ToString(); // что бы поля были видны в свойствах нужно было поменять private на internal editsale.TBName.Text = sale.Name.ToString(); editsale.TBFName.Text = sale.FName.ToString(); editsale.TitleIds = sale.TitleId; DialogResult result = editsale.ShowDialog(this); // в свойствах DialogRisult надо указать ОК if (result == DialogResult.Cancel) { return; } sale.SName = editsale.TBSName.Text; sale.Name = editsale.TBName.Text; sale.FName = editsale.TBFName.Text; sale.TitleId = editsale.TitleIds; db.SaveChanges(); UpdateDataGridViewSale(); // обновление GridV MessageBox.Show("ЗАКАЗ ИЗМЕНЕН"); } } } catch (System.NullReferenceException error) { MessageBox.Show("ВЫБЕРИТЕ ТАБЛИЦУ", "ОШИБКА"); } }