我有一个不会保存更改的表格编辑。看起来问题在于 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
什么会导致这种情况?我没有看到数据库中设置了任何不寻常的属性。