Exemplo n.º 1
0
        private void Change_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
              {
            int index = dataGridView1.SelectedRows[0].Index;
            int id = 0;
            bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
            if (converted == false)
              return;

            using (ArtistContext db = new ArtistContext())
            {
              Artist artist = db.Artists.Find(id);

              if (artist.Locked)
              {
            MessageBox.Show("Объект редактируется другим пользователем!");
            return;
              }
              //блокирую и отправляю запрос на лок
              artist.Locked = true;
              db.Entry(artist).State = EntityState.Modified;
              db.SaveChanges();

              ArtistData artistdata = new ArtistData();

              artistdata.comboBox1.SelectedItem = artist.Country;
              artistdata.textBox1.Text = artist.Name;
              artistdata.dateTimePicker1.Value = artist.BirthDate;

              DialogResult result = artistdata.ShowDialog(this);

              if (result == DialogResult.Cancel)
              {
            artist.Locked = false;
            db.Entry(artist).State = EntityState.Modified;
            db.SaveChanges();
            db.Artists.Load();
            dataGridView1.DataSource = db.Artists.Local.ToBindingList();
            return;
              }

              artist.Name = artistdata.textBox1.Text;
              artist.Country = artistdata.comboBox1.SelectedItem.ToString();
              artist.BirthDate = artistdata.dateTimePicker1.Value.Date;
              artist.Locked = false;

              db.Entry(artist).State = EntityState.Modified;
              db.SaveChanges();

              db.Artists.Load();
              dataGridView1.DataSource = db.Artists.Local.ToBindingList();
              dataGridView1.Refresh(); // обновляем грид
              MessageBox.Show("Объект обновлен");
            }

              }
        }
Exemplo n.º 2
0
        private void Change_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
              {
            int index = dataGridView1.SelectedRows[0].Index;
            int id = 0;
            bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
            if (converted == false)
              return;

            db.Dispose();
            db = new ArtistContext();

            db.Albums.Load();
            Album album = db.Albums.Find(id);

            if (album.Locked)
            {
              MessageBox.Show("Объект редактируется другим пользователем!");
              return;
            }
            //блокирую и отправляю запрос на лок
            album.Locked = true;
            db.Entry(album).State = EntityState.Modified;
            db.SaveChanges();

            AlbumData albumdata = new AlbumData();
            albumdata.textBox2.Text = album.Name;
            albumdata.dateTimePicker1.Value = album.Year;

            // формируем список жанров
            List<Genre> genres = db.Genres.ToList();
            albumdata.comboBox2.DataSource = genres;
            albumdata.comboBox2.ValueMember = "Id";
            albumdata.comboBox2.DisplayMember = "Name";

            // формируем список исполнителей
            List<Artist> artists = db.Artists.ToList();
            albumdata.comboBox1.DataSource = artists;
            albumdata.comboBox1.ValueMember = "Id";
            albumdata.comboBox1.DisplayMember = "Name";

            if (album.Genre != null)
              albumdata.comboBox2.SelectedValue = album.Genre.Id;

            if (album.Artist != null)
              albumdata.comboBox1.SelectedValue = album.Artist.Id;

            DialogResult result = albumdata.ShowDialog(this);

            if (result == DialogResult.Cancel)
            {
              album.Locked = false;
              db.Entry(album).State = EntityState.Modified;
              db.SaveChanges();

              db.Albums.Load();
              dataGridView1.DataSource = db.Albums.Local.ToBindingList();
              return;
            }

            album.Name = albumdata.textBox2.Text;
            album.Year = albumdata.dateTimePicker1.Value.Date;
            album.Artist = (Artist)albumdata.comboBox1.SelectedItem;
            album.Genre = (Genre)albumdata.comboBox2.SelectedItem;
            album.Locked = false;

            db.Entry(album).State = EntityState.Modified;
            db.SaveChanges();

            db.Dispose();
            db = new ArtistContext();
            db.Albums.Load();
            dataGridView1.DataSource = db.Albums.Local.ToBindingList();

            MessageBox.Show("Объект обновлен");
              }
        }