Я занимаюсь Entity Framework и у меня есть база данных, в которой нет связи между двумя таблицами. Моя форма имеет два вида данных, каждый из которых показывает содержимое этих таблиц при загрузке. У меня также есть две кнопки. Когда я выбираю любую ячейку (которая выделяет всю строку) на спортивном столе и нажимаю кнопку «Копировать», она перемещает данные в таблицу здоровья и удаляет их из спортивной таблицы. Вторая кнопка делает наоборот. Что вы думаете не так?
Я попытался удалить и добавить, и, похоже, произошла ошибка проверки. Как я могу это исправить?
public partial class Form1 : Form
{
SportsAreUsEntities mySports = new SportsAreUsEntities();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
RefreshGrids();
}
private void RefreshGrids()
{
var allSport = from eachSport in mySports.SportingItems
orderby eachSport.SportingItemID ascending
select new
{
eachSport.SportingItemID,
eachSport.Name,
eachSport.Description,
eachSport.QuantityOnHand
};
dataGridSport.DataSource = allSport.ToList();
var allHealth = from eachHealth in mySports.HealthItems
orderby eachHealth.HealthItemID ascending
select new
{
eachHealth.HealthItemID,
eachHealth.Name,
eachHealth.Description,
eachHealth.QuantityOnHand
};
dataGridHealth.DataSource = allHealth.ToList();
}
private void moveToHealth_Click(object sender, EventArgs e)
{
//Retrieve selected row and id
var selectedRow = dataGridSport.CurrentRow;
int selectedID = (int)selectedRow.Cells["SportingItemID"].Value;
var data2 = new HealthItem();
var rowToDelete = (from row in mySports.SportingItems
where row.SportingItemID == selectedID
select row).Single();
var rowToAdd = (from row in mySports.SportingItems
where row.SportingItemID == selectedID
select row).Single();
mySports.SportingItems.Remove(rowToDelete); //Mark for deletion
mySports.HealthItems.Add(data2);
mySports.SaveChanges();
RefreshGrids();
}