private void Add_Click(object sender, EventArgs e) { using (ArtistContext db = new ArtistContext()) { ArtistData ArtForm = new ArtistData(); //формируется список альбомов List<Album> albums = db.Albums.ToList(); DialogResult result = ArtForm.ShowDialog(this); if (result == DialogResult.Cancel) return; Artist artist = new Artist(); artist.Name = ArtForm.textBox1.Text; artist.Country = ArtForm.comboBox1.SelectedItem.ToString(); artist.BirthDate = ArtForm.dateTimePicker1.Value.Date; db.Artists.Add(artist); db.SaveChanges(); db.Artists.Load(); dataGridView1.DataSource = db.Artists.Local.ToBindingList(); MessageBox.Show("Новый объект добавлен"); } }
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("Объект обновлен"); } } }
private void Delete_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.Albums.Clear(); db.Artists.Remove(artist); db.SaveChanges(); db.Artists.Load(); dataGridView1.DataSource = db.Artists.Local.ToBindingList(); MessageBox.Show("Объект удален"); } } }
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("Объект обновлен"); } }