Это довольно маленькая программа, поэтому я просто использовал автоматически сгенерированный код для своего источника данных и перетаскивал / сбрасывал представление данных на моем WinForm. Я пытаюсь вручную обновить столбец в строке, но происходит сбой каждый раз, когда я получаю «UpdateAll» моего менеджера таблиц. Вот мой код для двойного щелчка по содержимому ячейки:
private void dgv1DataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
string delMemberID = dgv1DataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
ds1DataSet.Table1.Rows[ds1DataSet.Table1.Rows.IndexOf(ds1DataSet.Table1.FindByMemberID(delMemberID))][9] = MemberID.ToString();
this.Validate();
this.bs1BindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.ds1DataSet);
MessageBox.Show("Replacement Successful");
this.Close();
}
catch
{
MessageBox.Show("Replacement Failed");
}
}
Мои ожидания таковы; когда пользователь дважды щелкнет в любом месте строки представления данных, он обновит эту строку с другим «MemberID» для этого столбца, сохранит данные везде (включая базу данных), а затем закроет форму (чтобы вернуть родительскую форму).