0

我有一个 winforms 应用程序,它使用 IDE 中的数据源和数据集控件

这是我正在使用的代码块

        dsParcelBatch.BC_cpo_PARCELRow pr = dsParcelBatch.BC_cpo_PARCEL.FindByISN(int.Parse(activeParcelID));
    pr.BeginEdit();
    pr.NODE_ISN = 6;
    pr.EndEdit();       
    pr.AcceptChanges();

    dsParcelBatch.AcceptChanges();

我可以在第 1 行读取正确的行,它正在使用正确的值填充 PR 行,我调用 beginedit,并且 dsParcelBatch 没有更新。

我将 NODE_ISN 的值更改为新值,它坚持

我关闭编辑,并接受行中的更改。我可以查看数据源(dsParcelBatch)并且更改在那里 - 是的!

我调用dsParcelBatch,改变的值改变了....

但是当我查看数据库时,值又回到了原始值(5)

我错过了什么?

4

1 回答 1

0

在调用 AcceptChanges 之前,您需要使用DataAdapter更新数据库。

AcceptChanges 仅更改 DataTable 中行的状态,而不更改数据库中的行状态。

MSDN

调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象都会成功结束其编辑。DataRowState 也发生了变化:所有已添加和已修改的行都变为未更改,而已删除的行将被删除。

于 2012-07-29T06:27:30.037 回答