关于 Update 与 AcceptChanges

AcceptChanges 用于 Update 后

因为:若用在Update前,调用AcceptChanges办法会将所有批改保存到DataSet或DataTable中,使得所有行的状况都是Unchanged(没有被更改状况,Added、Modified、Unchanged将保留当前修改过的值,Deleted的行将从DataTable中移除,,最后所有的行的状态都置为Unchanged)。而DataAdapter.Update办法在保存数据到数据库表时做过一个搜检,即搜检表行是否被修悔改,若是没被修悔改,那么更需将不会履行任何号令,直接跳过本行,开端搜检下一行,如此,一个表若是行都是Unchanged状况,那么它就不会被更新到数据库中。所以,在更改了DataSet或DataTable后,若想调用DataAdapter.Update办法直接更新数据到数据库,那么你只须要这个Update办法,无需在此前调用一次AcceptChanges办法了。

若不在Update后使用AcceptChanges,这种情形的弊端暂时还没考虑到。只是说,使用了AcceptChanges会得到最新数据。。。。。也有说:在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后,通常会对 DataTable 调用 AcceptChanges 方法,是自动调用的意思么?。于是乎,什么情况要在update调用acceptchanges呢?

 


 

转:

 

以前的做法:

 

Fill –> Edit –>Update –> 重新Fill –> Edit –> Update –> ……

 

“更新了数据当然要重新获取啦!”,再次更新后,再再次重新获取。

 

现在的做法:

 

Fill –> Edit –> Update –> AcceptChanges –> Edit –> Update –> AcceptChanges –> Edit –> Update –> ……

 

如果就是单单户操作数据,开始获取一次就好了,反正你更新了数据后再获取的不就是你刚才更新的吗?考虑多用户的话,应该用fill才会更准确。

 

调用了update后,更新了数据库,但是此时源数据库碰巧数据被修改,此时我们的前台比如datagridview控件并不能实时体现。fill方法可以实时反应最新数据。

posted @ 2012-12-27 15:16  代码缔造的帝国  阅读(302)  评论(0编辑  收藏  举报