我有一个表格编辑,不会保存更改。看起来问题是RowState没有改变。 foreach循环用于调试:
private void btnSave_Click(object sender, EventArgs e)
{
this.Validate();
bs.EndEdit();
dsEdit.Tables["broker"].GetChanges();
DataTable dtOut = dsEdit.Tables["broker"];
foreach (DataRow rOut in dtOut.Rows)
{
Console.WriteLine(rOut.RowState.ToString());
Console.WriteLine(rOut["contactfax"]);
rOut["contactfax"] = "change";
Console.WriteLine(rOut.RowState.ToString());
Console.WriteLine(rOut["contactfax"]);
}
int n = sdaBkr.Update(dsEdit.Tables["broker"]);
MessageBox.Show(n.ToString() + " record(s) saved.");
}
控制台输出如下::
Unchanged
fax number here
Unchanged
change
这会导致什么?我没有在数据库中看到任何异常属性。
答案 0 :(得分:0)
在此处找到答案:EndEdit on BindingSource updates DataTable, but rowstate still unchanged
将每行调用EndEdit作为
rOut.EndEdit();
解决了这个问题,但我不明白,我在任何文档中都没有看到。