Есть бд из двух таблиц (Entity, всё через мастера, только Command'ы прописывал руками, т.к. таблицы две связанные), клиенты и заказы, в заказе есть выбранный пользователем клиент, у клиента много заказов. Создал DataSet, привязал его к DataGridView "Заказы" в конструкторе.
Два вопроса. 1) Сделал кнопку Изменить заказ, открывается диалоговое окно изменения пары полей в заказе. Как потом правильно сохранить это в бд? Делаю вот так, но знаю что не правильно (надо в бд изменять сначала, а потом апдейтить таблицу, а не наоборот):
private void SaveChanges_Click(object sender, EventArgs e)
{
Form1.myMainForm.dataGridView2.CurrentRow.Cells[1].Value = textBoxService.Text;
Form1.myMainForm.orderSetBindingSource1.EndEdit();
this.Validate();
Form1.myMainForm.orderSetBindingSource1.EndEdit();
Form1.myMainForm.orderSetTableAdapter1.Update(Form1.myMainForm.dataSetX);
Close();
}
2) Есть в заказе поле Статус, которое CheckBoxом является в бд. Обрабатываю клик на ячейку, и пытаюсь сохранить в бд (всё тем же неверным способом)
private void DataGridViewCellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 3)
{
if(Convert.ToBoolean(dataGridView2.CurrentCell.Value)==false)
{dataGridView2.CurrentCell.Value = true;}
else { dataGridView2.CurrentCell.Value = false; }
Form1.myMainForm.orderSetBindingSource1.EndEdit();
this.Validate();
Form1.myMainForm.orderSetBindingSource1.EndEdit();
Form1.myMainForm.orderSetTableAdapter1.Update(Form1.myMainForm.dataSetX);
DB.SaveChanges();
}
}
В этом случае такой неверный способ НЕ работает (в пункте 1 работает). Подскажите как сделать правильно.