예제 #1
0
        // добавление
        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();
            }
        }
예제 #2
0
        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();
            }
        }