// добавление private void button2_Click(object sender, EventArgs e) { using (The_State_Duma_Entities db = new The_State_Duma_Entities(DBUtils.getConnString())) { SozyvForm addForm = new SozyvForm(); List <Deputaty> deps = db.Deputaties.ToList(); addForm.listBox1.DataSource = deps; addForm.listBox1.ValueMember = "Partiyniy_bilet"; addForm.listBox1.DisplayMember = "Familiya"; DialogResult result = addForm.ShowDialog(this); if (result == DialogResult.Cancel) { return; } Sozyvy sozyv = new Sozyvy(); sozyv.Nomer = 0; sozyv.Data_nachala = DateTime.Parse(addForm.maskedTextBox1.Text); sozyv.Data_konca = DateTime.Parse(addForm.maskedTextBox2.Text); deps.Clear(); // очищаем список и заново заполняем его выделенными элементами foreach (var dep in addForm.listBox1.SelectedItems) { deps.Add((Deputaty)dep); } sozyv.Deputaties = deps; using (var transaction = db.Database.BeginTransaction()) { try { db.Sozyvies.Add(sozyv); try { db.SaveChanges(); } catch (DbUpdateException ex) { MessageBox.Show("Ошибка добавления : " + ex.ToString()); } transaction.Commit(); } catch (Exception ex) { MessageBox.Show("Ошибка добавления : " + ex.ToString()); try { transaction.Rollback(); } catch (Exception ex2) { MessageBox.Show("Ошибка отката : " + ex2.ToString()); } } } RefreshData(); } }
private void button3_Click(object sender, EventArgs e) { using (The_State_Duma_Entities db = new The_State_Duma_Entities(DBUtils.getConnString())) { if (dataGridView1.SelectedRows.Count < 1) { return; } int index = dataGridView1.SelectedRows[0].Index; int id = 0; bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id); if (converted == false) { return; } Sozyvy sozyv = db.Sozyvies.Find(id); SozyvForm addForm = new SozyvForm(); addForm.maskedTextBox1.Text = sozyv.Data_nachala.ToString(); addForm.maskedTextBox2.Text = sozyv.Data_konca.ToString(); // получаем список команд List <Deputaty> deps = db.Deputaties.ToList(); addForm.listBox1.DataSource = deps; addForm.listBox1.ValueMember = "Partiyniy_bilet"; addForm.listBox1.DisplayMember = "Familiya"; foreach (Deputaty d in sozyv.Deputaties) { addForm.listBox1.SelectedItem = d; } DialogResult result = addForm.ShowDialog(this); if (result == DialogResult.Cancel) { return; } sozyv.Data_nachala = DateTime.Parse(addForm.maskedTextBox1.Text); sozyv.Data_konca = DateTime.Parse(addForm.maskedTextBox2.Text); deps.Clear(); // очищаем список и заново заполняем его выделенными элементами foreach (var dep in addForm.listBox1.SelectedItems) { deps.Add((Deputaty)dep); } sozyv.Deputaties = deps; foreach (var d in deps) { if (addForm.listBox1.SelectedItems.Contains(d)) { if (!sozyv.Deputaties.Contains(d)) { sozyv.Deputaties.Add(d); } } else { if (sozyv.Deputaties.Contains(d)) { sozyv.Deputaties.Remove(d); } } } using (var transaction = db.Database.BeginTransaction()) { try { db.Entry(sozyv).State = EntityState.Modified; try { db.SaveChanges(); } catch (Exception ex) { MessageBox.Show("Ошибка обновления : " + ex.ToString()); } transaction.Commit(); } catch (Exception ex) { MessageBox.Show("Ошибка обновления : " + ex.ToString()); try { transaction.Rollback(); } catch (Exception ex2) { MessageBox.Show("Ошибка отката : " + ex2.ToString()); } } } RefreshData(); } }