RowState属性不会更改

时间:2013-04-05 16:53:25

标签: sql-server visual-studio-2005

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

这会导致什么?我没有在数据库中看到任何异常属性。

1 个答案:

答案 0 :(得分:0)

在此处找到答案:EndEdit on BindingSource updates DataTable, but rowstate still unchanged

将每行调用EndEdit作为

rOut.EndEdit();

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