VB.NET学习笔记:ADO.NET操作ACCESS数据库——OleDbDataAdapter的Update方法更新数据库的秘密(行状态RowState和行版本 DataRowVersion)

本文详细介绍了ADO.NET中如何使用OleDbDataAdapter的Update方法更新数据库,重点解析了行状态RowState和行版本DataRowVersion的作用。RowState枚举包括Unchanged、Added、Modified、Deleted和Detached,用于跟踪数据集中的行变化。在更新数据库时,Update方法依赖于行状态和行版本来确定是插入、更新还是删除记录。此外,还讨论了AcceptChanges和RejectChanges方法对数据集的影响,以及在使用过程中需要注意的顺序问题。
摘要由CSDN通过智能技术生成

在《数据集DataSet数据管理(DataAdapter查询更新数据库)》一文中提到可以使用OleDbDataAdapter对象的Update方法还可将对 DataSet 所做的更改解析回数据源,实例化OleDbDataAdapter对象时必须设置InsertCommand、 UpdateCommand或 DeleteCommand属性。那么OleDbDataAdapter对象是如何知道DataSet 数据集中哪些数据是要插入的、哪些是更改过的、而哪些又是需要删除的呢?
ADO.NET 用行状态和行版本管理表中的行。 行状态指示行的状态;行版本在修改行中存储的值时维护各个阶段的值,包括当前值、原始值和默认值。

一、行状态

(一)、RowState枚举

每个 DataRow 对象都具有 RowState 属性,您可以检查此属性来确定行的当前状态。只要该行中某一个字段发生改变,那么这一行对应的RowState属性就会发生改变。RowState是一个枚举,其中包含5个内容:

1、Unchanged

自上次调用 AcceptChanges 以来或由 DataAdapter.Fill 创建该行以来,没有进行任何更改。——原来的行!

2、Added

已将该行添加到表中,但尚未调用 AcceptChanges。——插入的新行!

3、Modified

已更改了行的某个元素。——刚被修改过的行!

4、Deleted

已从表中删除该行,并且尚未调用 AcceptChanges。——刚被删除的行(注意:这里只是从内存表中删除,准确的说是该行只是被做了Deleted标志并没有真的删除,物理数据表中更是没有删除,所以此时你无法直接去访问该行的某个字段的内容!)。

5、Detached

该行不是表中的行——该行不是任何 DataRowCollection 的一部分。 新创建的行、或者已经被Remove或者RemoveAt、或者Delete之后调用过AcceptChanges方法的行、或者是WinForm控件DataGridView默认设置下最后那个永远也留出的空行……都被自动设置该状态。这种状态表示已初始化但未添

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值