private void изменитьСпециальностьToolStripMenuItem_Click(object sender, EventArgs e) { if (SpecialtyDataGV.SelectedRows.Count > 0) { foreach (DataGridViewRow i in SpecialtyDataGV.SelectedRows) { bool converted = Int32.TryParse(SpecialtyDataGV[0, i.Index].Value.ToString(), out int id); if (converted == false) { return; } Specialty specialty = db.Specialties.Find(id); //db.Specialties.Remove(specialty); var add = new AddSpecialty(); // создаем форму для изменения add.DisciplinesLB.DataSource = db.Disciplines.ToList(); /// делаем привязку к таблице с дисциплинами add.DisciplinesLB.DisplayMember = "Name"; /// выводим на экран значение атрибута Name add.SpecialtyMB.Text = specialty.Name; if (add.ShowDialog(this) == DialogResult.OK) { try { specialty.Disciplines.Clear(); // перед перезаписью очищаем список дисциплин foreach (Object selecteditem in add.DisciplinesLB.SelectedItems) { specialty.Disciplines.Add((Discipline)selecteditem); } specialty.Name = add.SpecialtyMB.Text; db.SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } // по каждой выделенной строке SpecialtyDataGV.DataSource = new BindingSource { DataSource = db.Specialties.ToList().Select(b => new { b.Id, b.Name } ) }; // если в таблице 0 специальностей if (db.Specialties.ToList().Count == 0) { SpecialtyDataGV.DataSource = null; } else { SpecialtyDataGV.DataSource = new BindingSource { DataSource = db.Specialties.ToList().Select(b => new { b.Id, b.Name } ) }; } MessageBox.Show("Информация успешно изменена"); } }
/*-----------------------------------------------------------------------*/ /* Методы связанные с таблицей СПЕЦИАЛЬНОСТИ */ /*-----------------------------------------------------------------------*/ private void добавитьСпециальностьToolStripMenuItem_Click(object sender, EventArgs e) { var add = new AddSpecialty(); add.DisciplinesLB.DataSource = db.Disciplines.ToList(); add.DisciplinesLB.DisplayMember = "Name"; if (add.ShowDialog(this) == DialogResult.OK) { try { Specialty specialty = new Specialty(); //specialty.Disciplines = new List<Discipline>(); List <Discipline> disciplines = new List <Discipline>(); foreach (Object selecteditem in add.DisciplinesLB.SelectedItems) { disciplines.Add((Discipline)selecteditem); } specialty.Disciplines = disciplines; specialty.Name = add.SpecialtyMB.Text; db.Specialties.Add(specialty); db.SaveChanges(); SpecialtyDataGV.DataSource = new BindingSource { DataSource = db.Specialties.ToList().Select(b => new { b.Id, b.Name } ) }; // SpecialtyDataGV.Refresh(); MessageBox.Show("Специальность успешно добавлена!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { add.Close(); } }