private void addPl_Click(object sender, EventArgs e) { PlayerForm plf = new PlayerForm(); //создаем экземпляр формы добавления List <Team> teams = db.Teams.ToList(); //сохраняем данные о командах в список plf.listBox1.DataSource = teams; //переносим данные в список plf.listBox1.ValueMember = "Id"; //свойство которое должно использовать при запросе plf.listBox1.DisplayMember = "Name"; //свойство которое выводится при запросе DialogResult result = plf.ShowDialog(this); //создаем диалоговое окно if (result == DialogResult.Cancel) //проверяем { return; } Player player = new Player(); //создаем новый объект игрок player.Age = (int)plf.numericUpDown1.Value; //сохраняем возраст player.Position = plf.textBoxPosit.Text; //сохраняем позицию player.Name = plf.textBoxName.Text; //имя teams.Clear(); // очищаем список и заново заполняем его выделенными элементами foreach (var item in plf.listBox1.SelectedItems) { teams.Add((Team)item); } player.Teams = teams; //сохраняем изменения выбранной команды db.Players.Add(player); //добавляем в базу новые данные db.SaveChanges(); //сохранем результат MessageBox.Show("Новый игрок добавлен"); }
private void butedit_Click(object sender, EventArgs e) { 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; } Player player = db.Players.Find(id); //ищем необходимый объект PlayerForm plForm = new PlayerForm(); //открываем форму редактирования plForm.numericUpDown1.Value = player.Age; plForm.textBoxName.Text = player.Name; plForm.textBoxPosit.Text = player.Position; // получаем список команд List <Team> teams = db.Teams.ToList(); plForm.listBox1.DataSource = teams; plForm.listBox1.ValueMember = "Id"; plForm.listBox1.DisplayMember = "Name"; foreach (Team t in player.Teams) { plForm.listBox1.SelectedItem = t; } DialogResult result = plForm.ShowDialog(this); if (result == DialogResult.Cancel) { return; } // проверяем наличие команд у игрока foreach (var team in teams) { if (plForm.listBox1.SelectedItems.Contains(team)) { if (!player.Teams.Contains(team)) { player.Teams.Add(team); } } else { if (player.Teams.Contains(team)) { player.Teams.Remove(team); } } } db.Entry(player).State = EntityState.Modified; db.SaveChanges(); MessageBox.Show("Информация обновлена"); }