DataTable.AcceptChanges()之后执行adapter.update()

本文探讨了使用Python进行数据同步时遇到的问题,特别是在更新DataSet后调用AcceptChanges()方法导致数据库无法更新的情况。通过分析RowState的状态变化,揭示了Adapter在执行Update()前会检查这些状态,从而解释了为何调用AcceptChanges()后数据库不会被更新。

最近做一个数据同步的工作,在对数据获取后放入DataSet之后,每行的值更新后执行:

DataSet.Table[0].AcceptChanges()之后,做更新操作adapter.Update();发现数据库不执行更新。

设置断点方知:在对行上的数据更新时,这时RowState为Modified,即已修改状态;而当执行AcceptChanges()时,

RowState为Unchanged,即未更改状态。从而推断,Adapter在做更新到时候先判断状态,然后再做数据库操作。

所有AcceptChanges()如果仅仅是数据操作时,可在update()之后调用,或者不调用。因为执行完update()之后,行状态

均为unchanged,可以理解为已经执行了AcceptChanges().

转载于:https://my.oschina.net/u/206659/blog/80076

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值