DataSet对象

DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库。并且,由于DataSet对象具有离线访问数据库的特性,所以它更能用来接收海量的数据信息。
 
1  DataSet对象概述
 
DataSet是ADO.NET中用来访问数据库的对象。由于其在访问数据库前不知道数据库里表的结构,所以在其内部,用动态XML的格式来存放数据。这种设计使DataSet能访问不同数据源的数据。
 
DataSet对象本身不同数据库发生关系,而是通过DataAdapter对象从数据库里获取数据并把修改后的数据更新到数据库。在DataAdapter的讲述里,就已经可以看出,在同数据库建立连接后,程序员可以通过DataApater对象填充 (Fill)或更新(Update)DataSet对象。
 
.NET的这种设计,很好地符合了面向对象思想里低耦合、对象功能唯一的优势。如果让DataSet对象能直接连到数据库,那么DataSet对象的设计势必只能是针对特定数据库,通用性就非常差,这样对DataSet的动态扩展非常不利。
 
由于 DataSet 独立于数据源,DataSet 可以包含应用程序本地的数据,也可以包含来自多个数据源的数据。与现有数据源的交互通过DataAdapter 来控制。
 
DataSet对象常和DataAdapter对象配合使用。通过DataAdapter对象,向DataSet中填充数据的一般过程是:
 
(1) 创建DataAdapter和DataSet对象。
 
(2) 使用DataAdapter对象,为DataSet产生一个或多个DataTable对象。
 
(3) DataAdapter对象将从数据源中取出的数据填充到DataTable中的DataRow对象里,然后将该DataRow对象追加到DataTable对象的Rows集合中。
 
(4) 重复第(2)步,直到数据源中所有数据都已填充到DataTable里。
 
(5) 将第(2)步产生的DataTable对象加入DataSet里。
 
而使用DataSet,将程序里修改后的数据更新到数据源的过程是:
 
(1) 创建待操作DataSet对象的副本,以免因误操作而造成数据损坏。
 
(2) 对DataSet的数据行(如DataTable里的DataRow对象)进行插入、删除或更改操作,此时的操作不能影响到数据库中。
 
(3) 调用DataAdapter的Update方法,把DataSet中修改的数据更新到数据源中。
 
2  DataSet对象模型
 
从前面的讲述中可以看出,DataSet对象主要用来存储从数据库得到的数据结果集。为了更好地对应数据库里数据表和表之间的联系,DataSet对象包含了DataTable和DataRelation类型的对象。
 
其中,DataTable用来存储一张表里的数据,其中的 DataRows对象就用来表示表的字段结构以及表里的一条数据。另外,DataTable中的DataView对象用来产生和对应数据视图。而 DataRelation类型的对象则用来存储DataTable之间的约束关系。DataTable和DataRelation对象都可以用对象的集合 (Collection)对象类管理。
 
由此可以看出,DataSet 中的方法和对象与关系数据库模型中的方法和对象一致,DataSet对象可以看作是数据库在应用代码里的映射,通过对DataSet对象的访问,可以完成对实际数据库的操作。
 

DataSet对象模型中的各重要组件说明如下。
 
1. DataRelationCollection和DataRelation
 
DataRelation对象用来描述DataSet里各表之间的诸如主键和外键的关系,它使一个 DataTable 中的行与另一个 DataTable 中的行相关联,也可以标识 DataSet 中两个表的匹配列。
 
DataRelationCollection是DataRelation对象的集合,用于描述整个DataSet对象里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值