DataRow对象有两个比较重要的属性,分别是行状态(RowState)和行版本(DataRowVersion),通过这两个属性能够有效的管理表中的行。下面简要的介绍一下行状态和行版本的特点和关系。

ü         行状态(RowState):

l         UnChanged状态:指表中的行自创建之后没有做过任何改动的状态,或则是行在上次接受修改之后,至今未做过任何改动的状态。

l         Added状态:该状态是指已经将行添加到表中,但是尚未调用表对象的AcceptChanged方法。调用AcceptChanged方法时,所有处在Added状态的行都变为Unchanged状态。

l         Modified状态:该状态表示该行已经被修改。调用AcceptChanged方法时,所有处在Modified状态的行都变为Unchanged状态

l         Deleted状态:该状态表示该行已经从表中删除,但是尚未调用表对象的AcceptChanged方法

l         Detached状态:该状态表示该行不属于任何表,或则已经从表中分离出去了,不再属于任何表的DataRow对象。

下面举例说行的变化状态。新建的行(DataRow对象)处于Detached状态,把它添加到DataTable对象之后,该DataRow对象的状态变为Added状态。如果对该DataRow进行了修改,则该行处于Modified状态。如果使用Remove方法从表中移除该DataRow对象,或则使用Delete方法和AcceptChanged方法移除该行,则该行处于Detached状态。

ü         行版本(DataRowVersion)

行(DataRow)对象有四种不同的行版本,分别是Current,Original,proposed和default。下面对这些行版本进行简要的说明。

l           Current:表示行的当前值。处于deleted状态的行不存在该行版本。

l           Original:表示行的原始值。处于Added状态的行不存在该行版本

l           Proposed:表示行的建议值。不属于表的行,即处于Detached状态的行存在该行版本;对于正在进行编辑的行,也存在该行版本。

l           Default:表示行的默认版本。处于Added,Modified或则Unchanged状态的行的默认行版本是current;处于deleted状态的行的默认行版本是original。处于Detached状态的行的默认版本是proposed。

下面举例说明行状态和行版本的变化。当调用AcceptChanged方法,所有处于deleted状态的行将变为Detached状态,即被移除。其余的行会变为Unchanged状态,并且Original版本中的值会改写为current行版本的值。

http://cyjwlj.spaces.live.com/blog/cns!61937147116f197a!148.entry

string str = rowModel[fieldName, DataRowVersion.Original].ToString();
string str2 = rowModel[fieldName, DataRowVersion.Current].ToString();

行(DataRow)对象四种行版本:Current! Original! Proposed! Default!相关推荐

  1. Js中自定义对象四种方式

    Js中自定义对象四种方式 1 类似JAVA有参构造方式: 1.定义对象: function 对象(属性[age]){追加属性:如(this.age = age)[this代表当前对象的地址值的引用]追 ...

  2. 行DataRow对象的属性和方法

    DataRow对象的常用属性: HasError--确定行是否包含错误. Item--通过指定行的列数,读取行内的数据,如Item(2),就是读取第3个数据. ItemArray--获取或设置行中所有 ...

  3. TDengine:无模式写入行协议的四种方式

    小 T 导读:为了在数据采集项频繁变动的情况下保证用户仍然能够顺利地完成数据记录工作,TDengine 提供了三种无模式写入协议,分别是 InfluxDB Line 协议.OpenTSDB Telne ...

  4. Excel隔行调整行高的四种有效方法

     领导要求把一份Excel表格的偶数行行高调整一下.这份表格可是有上百行的,逐一调整行高显然是不科学的.几经周折,费了我N多的口舌四处讨教,这个任务还是顺利地完成了. 一.直接定位法 先在表格的最后增 ...

  5. 计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法

    领导要求把一份Excel表格的偶数行行高调整一下.这份表格可是有上百行的,逐一调整行高显然是不科学的.几经周折,费了我N多的口舌四处讨教,这个任务还是顺利地完成了. 一.直接定位法 先在表格的最后增加 ...

  6. 【MySQL】mysql | 数据处理 | 行转列 | 一种行转列的处理思路

    一.说明 1.mysql数据库 2.行转列场景,对于不同行业来说,使用频率不一样 3.本文档仅提供一种行转列的思路,仅做参考 二.开始 1.假设场景 1)以财务数据为例,但非专业的财务数据 2)财务数 ...

  7. 如何在日常生活修行六度与四摄行?

    如何在日常生活修行六度与四摄行? 学佛者如何在日常生活中修行,特别是佛学的六度 陈兵先生在<与青年朋友谈学佛>中讲得极好,特摘录如下: "修习者须先研读经论,听闻讲经说法,对因果 ...

  8. DataRow对象的RowState和DataRowVersion属性特点

    DataRow对象有两个比较重要的属性,分别是行状态(RowState)和行版本(DataRowVersion),通过这两个属性能够有效的管理表中的行.下面简要的介绍一下行状态和行版本的特点和关系. ...

  9. final关键字概念及其四种用法、四种权限修饰符的优先级以及内部类的相关概念

    一.final关键字代表最终.不可改变的. 常见的四种用法: ①.可以用来修饰一个类. ②.可以用来修饰一个方法. ③.还可以用来修饰一个局部变量. ④.还可以用来修饰一个成员变量. (1).修饰一个 ...

最新文章

  1. yolov5训练自己的数据集
  2. 排序和顺序统计学(2)——快速排序
  3. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  4. PostgreSQL · 特性介绍 · 全文搜索介绍
  5. matlab转向语句,MATLAB控制语句
  6. MFC 窗体样式修改
  7. 重载运算符操作_学习
  8. this kernel requires an x86-64 CPU, but only detected an i686 CPU
  9. RxSwift 5官方Demo调试和学习资源
  10. [知识图谱] 1.2-知识图谱有什么用?
  11. EXCILE 电子表格常见公式
  12. python Pmw的模块下载
  13. 西南大学计算机学院推免,2019年西南大学计算机与信息科学学院硕士研究生拟录取名单的公示(不含推免生)...
  14. flutter自定义广告Banner
  15. 集赞转发送大礼 有赞你就来
  16. android音频资源,android音频编辑之音频裁剪的示例代码
  17. HP520笔记本驱动下载(惠普)
  18. win7计算机搜索功能没有了,正版win7旗舰版电脑的搜索功能不见了怎么办
  19. android 仿旅游日历控件_android 仿预订日历时间选择(如去哪儿,携程
  20. ThinkPHP5高校网络安全竞赛答题平台

热门文章

  1. 供应链金融的三种模式分析
  2. 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu
  3. JMETER分享UBT
  4. 单片机C51使用一个按键控制继电器开关通断
  5. 知识丨软件定义汽车的价值
  6. Python制图常用设置
  7. JAVA基本框架搭建(Maven,jetty,Jod…
  8. NFS、GFS、NAS文件存储服务对比分析
  9. 一款运行在Mac平台上的浏览器:Vivaldi浏览器 for Mac
  10. SpringCloud 教程资源