我有一个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)并且更改在那里 - YEA!
我调用dsParcelBatch,更改的值被更改....
但是当我查看数据库时,该值又回到了原始值(5)
我错过了什么?
答案 0 :(得分:0)
在调用AcceptChanges之前,您需要使用DataAdapter到Update数据库。
AcceptChanges仅更改DataTable中行的状态,而不是数据库中的行。
MSDN:
调用AcceptChanges时,任何DataRow对象仍处于编辑模式 成功结束编辑。 DataRowState也会更改:全部已添加 和修改的行变为未更改,删除的行将被删除。