0

我有一个不会保存更改的表格编辑。看起来问题在于 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

什么会导致这种情况?我没有看到数据库中设置了任何不寻常的属性。

4

1 回答 1

0

在这里找到答案:BindingSource 上的 EndEdit 更新 DataTable,但行状态仍然不变

在每一行上调用 EndEdit

rOut.EndEdit();

解决了这个问题,但我不明白,我在任何文档中都没有看到。

于 2013-04-05T17:36:42.937 回答