说说DataSet

DataSet对象在ADO.NET中的地位就像RecordSet对象在ADO中的地位一样重要。它是ADO.NET中的核心概念。有了DataSet之后,就可以轻而易举的实现与数据库的无连接模式。而且DataSet还可以屏蔽各种不同的数据源之间的差异,为程序员提供一个统一的编程接口。

DataSet可以理解为内存中的数据库。这是因为在一个DataSet对象中包含了一个数据库系统中所应有的一切内容。DataSet对象可以支持多张表,表之间的关系和数据约束等,在DataSset对象中有若干个集合,比如Tables,这个集合就可以代表一个数据库中的多张表。又如Relations集合,它可以代表一个数据库中的表间关系。

一、DataSet的组成

Tables对象

在DataSet中有一个数据表的集合Tables,其成员的数据类型为System.DataTable。一个DataSet可以包含多个DataTable。一个DataTable可以很好的表示一个数据库中的表,它有两个集合:columns和rows。其成员的数据类型分别为System.DataColumn和System.DataRow。这两个集合分别用于表示一个表的列和行。

在ADO的Recordset对象中,访问一个表的不同记录是使用RecordSet对象MoveNext、MoveFirst等方法。现在有了DataSet对象中的Rows集合,就可以更加方便的访问一个数据表的不同记录。

不但如此,还可以在内存中使用代码向一个DataSet对象添加或者删除DataTable,或者向一个DataTable对象中添加或者删除DataRow或者DataColumn。

Relations对象

当一个DataSet对象中的表之间存在关系时,就可以使用DataRelation对象来表达这些关系。这些DataRelation对象就形成了一个Relations集合。

Relations集合体现了各个表之间的约束关系,即主码—外码关系。当一个由外码的表的记录被更新时,如果不满足主码—外码的约束关系,这个更新操作就会失败。

ExtendedProperties对象

在这个对象中可以定义一些DataSet对象扩展的属性,比如密码、更新时间等。

二、DataSet的使用

DataSet其实就是数据集,上边已经说过DataSet是把数据库中的数据映射到内存缓存中的所构成的数据容器,对于任何数据源,它都提供一致的关系编程模型。在DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。DataSet使用方法一般有三种:

1、 把数据库中的数据通过DataAdapter对象填充DataSet

2、 通过DataAdapter对象操作DataSet实现更新数据库

3、 把XML数据流或文本加载到DataSet中。

下面详细说书偶上面三种方法的具体实现。

1、 把数据库中的数据通过DataAdapter对象填充DataSet:

在这里应该先掌握一个重要的成员——数据提供者(Data Provider),在这些数据提供者中都有一个DataAdapter类,例如:在The SQL Server.NET Framework数据提供者中是SqlDataSAdapter类。通过这个DataAdapter就能够实现从数据库中检索数据并填充DataSet中的表。

DataAdapter填充DataSet的过程分为两步:首先通过DataSdapter的SelectCommand属性从数据库中检索出需要的数据。SelectCommand其实就是一个Command对象。然后再通过DataAdapter的Fill方法把检索出来的数据填充DataSet

下面使用The SQL Server.NET Data Provider中的SqlDataAdapter填充DataSet的具体实现方法(C#,数据库为Charge):

SqlConnection sqlConnection1=new SqlConnection("server=WBX-PC;database=charge_sys;uid=sa;pwd=123;");
//创建数据连接
SqlCommand selectCMD=new SqlCommand("select * from User_Info where UserID='" & User.userID & "'",sqlConnection1);
//创建并初始化SqlCommand对象
SqlDataAdapter sqlDataAdapter1=new SqlDataAdapter();
sqlDataAdapter1.SelectCommand=selectCMD;
sqlConnection.Open();
//创建SqlDataAdapter对象,并根据SelectCommand属性检索数据
DataSet dsDataSet1=new DataSet();
sqlDataAdapter1.fill(dsDataSet1,"User_Info");
//使用SqlDataAdapter的Fill方法填充DataSet
sqConnection.Close();
//关闭数据库连接


 

 




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值