DataTable.AcceptChanges方法有何用处
提交自上次调用 AcceptChanges 以来对该表进行的全部更改。
调用 AcceptChanges 后,再用 DataAdapter.Update() 不会有不论什么新数据被更新到数据库中。那……那它有什么用处呢?
曾经的做法:
Fill –> Edit –>Update –> 又一次Fill –> Edit –> Update –> ……
“更新了数据当然要又一次获取啦!”,再次更新后,再再次又一次获取。
如今的做法:
Fill –> Edit –> Update –> AcceptChanges –> Edit –> Update –> AcceptChanges –> Edit –> Update –> ……
開始获取一次就好了,反正你更新了数据后再获取的不就是你刚才更新的吗,干嘛还要获取一遍呢?
AcceptChanges 在 Update 后 !
-----------------------------------------丑陋切割线-------------------------------------------------------------
AcceptChanges()和RejectChanges() http://www.cnblogs.com/perfect/archive/2007/08/06/844634.html
近期在园子里看了几篇相关的文章,总结了一下(还请多多指正):
Delete()是面向对象状态操作的(能够回滚);RemoveAt()是面向普通集合操作的(不能够回滚,等价于先Delete()后AcceptChanges())
DataTable.AcceptChanges方法
提交自上次调用 AcceptChanges 以来对该表进行的全部更改。调用 AcceptChanges 时,不论什么仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState 也会随之更改:全部状态为 Added 和 Modified 的行的状态都变为 Unchanged;状态为 Deleted 的行则被移除。
在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后,一般会对 DataTable 调用 AcceptChanges 方法。 DataTable.RejectChanges方法
回滚自该表载入以来或上次调用 AcceptChanges 以来对该表进行的全部更改。
调用 RejectChanges 时,不论什么仍处于编辑模式的 DataRow 对象将取消其编辑。新行被移除。DataRowState 设置为 Modified 或 Deleted 的行返回到其初始状态。 使用 Delete 方法后,RowState 变成“已删除”。在您调用 AcceptChanges 之前,它一直保持“已删除”。可通过调用 RejectChanges 取消删除行。 而RemoveAt表示当移除行时,该行中的全部数据都将丢失。您还能够调用 DataRow 类的 Delete 方法来标记某行以供移除。调用
RemoveAt 等同于先调用 Delete 再调用 AcceptChanges。 也就是说使用Delete()方法删除行后是能够回滚的,而使用RemoveAt(int)方法是不能回滚的。 总结:
1、Delete()之前接收了AcceptChanges()后,都仅仅加上删除标记,以后再次接受了AcceptChanges()后才真正删除,否则没有再次接受AcceptChanges()遇到RejectChanges()能够回滚
2、Delete()之前没有接收AcceptChanges(),之后马上接受AcceptChanges(),也真正删除
3、Delete()之前没有接收AcceptChanges(),之后也没马上接受AcceptChanges(),会彻底删除:由于没有必要回滚
相关文章
- 常见的图像增强方法有_图像中值滤波的算法实现
- Python类调用实例方法
- Linux获取本地IP地址方法简介(linux获取本地ip地址)
- 慢提高Linux下载速度的方法(linux下载速度)
- JSP Request.getDateHeader()方法:获取构建Date对象的long值
- Linux系统下快速刷新屏幕的方法(linux刷新屏幕)
- 性能优化提升Redis List性能的简单方法(redis的list)
- MySQL去除唯一约束:简单易用的方法(mysql去掉唯一)
- 计算Oracle中计算两日期间隔天数的方法(oracle 两日期天数)
- 简单明了Redis Auth设置方法(redis 设置auth)
- MySQL创建用户与授权方法
- 如何编译libfreetype方法详解
- C#datatable不能通过已删除的行访问该行的信息处理方法
- Datatable删除行的Delete和Remove方法的区别介绍
- c#将list类型转换成DataTable方法示例
- Python学习笔记_数据排序方法
- node.js使用npm安装插件时提示installError:ENOENT报错的解决方法
- php+mysql数据库实现无限分类的方法
- php实现按指定大小等比缩放生成上传图片缩略图的方法
- js使用正则实现ReplaceAll全部替换的方法
- C#实现Datatable排序的方法
- C#中DataTable删除行的方法分析
- SQLServer中聚合历史备份信息对比数据库增长的方法