最近做一个数据同步的工作,在对数据获取后放入DataSet之后,每行的值更新后执行:
DataSet.Table[0].AcceptChanges()之后,做更新操作adapter.Update();发现数据库不执行更新。
设置断点方知:在对行上的数据更新时,这时RowState为Modified,即已修改状态;而当执行AcceptChanges()时,
RowState为Unchanged,即未更改状态。从而推断,Adapter在做更新到时候先判断状态,然后再做数据库操作。
所有AcceptChanges()如果仅仅是数据操作时,可在update()之后调用,或者不调用。因为执行完update()之后,行状态
均为unchanged,可以理解为已经执行了AcceptChanges().
本文探讨了使用Python进行数据同步时遇到的问题,特别是在更新DataSet后调用AcceptChanges()方法导致数据库无法更新的情况。通过分析RowState的状态变化,揭示了Adapter在执行Update()前会检查这些状态,从而解释了为何调用AcceptChanges()后数据库不会被更新。

8245

被折叠的 条评论
为什么被折叠?



