DataRow的状态

dataSet.Table.Rows[x].Delete()的此行还存在在DataTable中的,只是状态改变了,即使update后也应该.AcceptChanges()如果还要用这个dataSet.Table
说明如下
一个DataRow对象刚被创建之后其状态是Detached,是孤立的一个存在,所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个DataRow的状态就转变为Added。当修改了这个DataRow后,这个DataRow状态转为Modified,当用DataRow.Delete()方法删除DataRow后,DataRow状态将转为Deleted,不过此行还存在在DataTable中的,只是状态改变了,这时用DataTable.Rows.Count查看行数,跟删除前是一样的。只有在调用了DataTable.Remove(DataRow)方法后,此DataRow才被从DataTable移除,状态也回复到Detached孤立状态。

一旦调用了DataTable.AcceptChanges()方法后,所有的行将根据不同的状态做不同的处理,Added、Modified、Unchanged将保留当前值,Deleted的行将从DataTable中移除,最后所有的行的状态都置为Unchanged。当DataTable是从DataAdapter.Fill(DataSet,DataTable)方法填充而形成的,Fill()方法将自动调用AcceptChanges()方法,将DataTable的行状态都置为Unchanged。并且,如果Fill方法中指定的那个DataTable在要填充的那个DataSet不存在时,会生成一个跟数据源表同样的结构的DataTable并填充数据。

时间: 2024-07-29 21:46:06

DataRow的状态的相关文章

ADO.NET中容易混淆的概念

一.DataTable DataTable表示内存中数据的一个表,它完全是在内存中的一个独立存在,包含了这张表的全部信息.DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在:也可以是完全由程序自己通过代码来建立的一个表. ◆ DataColumn 一个表是由行和列组成的一个两维的结构.表的结构是由DataColumn对象的集合组成,DataColumn对象集合可由DataTable.Columns

如何判断一个字段中是否存在某字?。 如何获取GridView中的控件?

问题描述 我想判断在数据库中某个字段是否存在某字!例在a字段中是否存在b还有一个问题我以前做过datalist的获取控件改更他的属性现在用GridView不会!<Columns><asp:TemplateField><ItemTemplate><asp:LabelID="Label1"runat="server"BackColor="Red"Text=""></asp:L

如何在&amp;amp;lt;asp:BoundField HeaderText=&amp;amp;quot;状态&amp;amp;quot; /&amp;amp;gt;加入条件(if (变量 = 1){显示审核:} else{显示未审核;}

问题描述 如何在<asp:BoundFieldHeaderText="状态"/>加入条件(if(变量=1){显示审核:}else{显示未审核;}请高手指点. 解决方案 解决方案二:参考:解决方案三:Value中使用三元运算符,使用方法跟在程序中一样!解决方案四:象这种情况三元运算符怎么操作呢?解决方案五:变量=1?"审核":"未审核"是这意思?解决方案六:在.aspx文件中怎么体现出这种三元式呢?解决方案七:可以用啊,像下面这样<

深入RESTful无状态原则

前言 在上篇RESTful基础知识中整体的介绍了RESTful架构设计思想的框架,在往后的RESTful主题博文中,我们在这个框架的基础上不断的为其填充更加深入的知识材料.  RESTful基础知识,传送门:http://blog.csdn.net/jmilk/article/details/50452595 无状态原则 Statelessness:无状态原则是RESTful架构设计中一个非常重要的原则,无状态是相对于有状态而言的.在理解什么是无状态的交互请求之前,首先我们需要了解什么是有状态,

HTTP状态码集

1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应. 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动. 100 Continue 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个

ASP.NET中的状态管理

asp.net 我们在ASP中能够通过cookie.查询字符串.应用程序.对话等轻易地解决这些问题.现在到了ASP.NET环境中,我们仍然可以使用这些功能,只是它们的种类更多了,功能也更强大了. 管理互联网网页主要有二种不同的方法:客户端和服务器端. 1.客户端的状态管理: 在客户端.服务器之间的多次请求-应答期间,服务器上不保存信息,信息将被存储在网页或用户的计算机上. A.Cookie cookie是存储在客户端文件系统的文本文件中或客户端浏览器对话的内存中的少量数据,它主要用来跟踪数据设置

HTTP协议是无状态协议,怎么理解

HTTP协议是无状态协议,怎么理解?   Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息.  自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控

状态模式(state pattern) 详解

状态模式(state pattern): 允许对象在内部状态改变时改变它的行为, 对象看起来好像修改了它的类. 建立Context类, 包含多个具体状态(concrete state)类的组合, 根据状态的不同调用具体的方法, state.handle(), 包含set\get方法改变状态. 状态接口(state interface), 包含抽象方法handle(), 具体状态类(concrete state)继承(implement)状态类(state), 实现handle()方法; 具体方法

android中如何实现在静音状态下播放警报

问题描述 android中如何实现在静音状态下播放警报 我想做一个防盗应用在手机静音的状态下也能报警,这和闹钟原理应该一样 请帮我解答 谢谢 解决方案 闹钟到时打开音量,用户确定后恢复到静音. 解决方案二: setVolumeControlStream(AudioManager.STREAM_SYSTEM);试试