C#中
DataSet的用法
(装载至http://blog.csdn.net/zhuzhao/archive/2008/12/28/3628922.aspx)
DataSet类是
内存中数据的复杂容器。DataSet类包含了DataTable实例的集合,DataTable实例包含了保存在数据集中的关系数据。每个DataTable实例包含DataColumn实例的集合用来定义表中的数据的
架构,还包含DataRow实例的集合用来以数据行方式访问其中包含的数据。
数据集还允许使用乐观并发
处理方法更新数据库,为了支持这种功能,
数据表对象中的每个数据行会跟踪一个RowState标志,来标识数据行的状态是未修改、已修改、新增或已删除。数据表还维护着每个已修改数据行的一个附加拷贝,这样就可以同时保留从数据库中取出的原值和当前值。使用这些数据就可以检测到,在数据集被提交修改的这段时间,其他人是否已经修改可数据库中的值。
使用DataSet对象更新数据库,我们可以使用数据适配器的Update方法。Update方法的功能与适配器的Fill方法类似。唯一不同 的是Update方法会查找数据集中的每个数据表的每个数据行,当它
发现某个数据行状态为已修改、新增或已删除的时候,它就会为每个这样的数据行执行一个单独的命令。数据适配器使用UpdateCommand、InsertCommand和DeleteCommand等属性引用的SqlCommand对象来执行这些命令。
DataSet类型还支持在内部包含的数据表上定义约束,包括
主键约束、
唯一约束和
外键约束等。DataView可以用来排序或过滤包含在数据表的数据,而不用修改数据表的实际内容,这与数据库中的数据表上定义的视图概念是非常类似的。