选择DataSet还是DataReader

          在开发数据应用程序的时候,我们就避免不了与数据打交道。

           而在.net的开发平台上,我们理所应当的会想到Ado.net

           一、Ado.net概述

                 ADO.NET 是一组向 .NET Framework 程序员公开数据访问服务的类。ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML 和应用程序数据的访问。

                 上面是MSDN的原话,总结起来可以这样说,ado.net为用户提供了一组类,而通过些类,可以实现上面所说的连接到数据库、执行命令和检索结果等功能。

           DataSet

           ADO.NET DataSet 是专门为独立于任何数据源的数据访问而设计的。 因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个DataTable 对象的集合,这些对象由数据行和数据列以及有关DataTable 对象中数据的主键、外键、约束和关系信息组成。

          下图阐释了 .NET Framework 数据提供程序和 DataSet 之间的关系。

           

          DataReader

使用 DataReader 检索数据包括创建 Command 对象的实例,然后通过调用 Command.ExecuteReader 创建一个DataReader,以便从数据源检索行。

二、选择DataSet还是DataReader

在决定应用程序应使用 DataReader还是应使用 DataSet时,应考虑应用程序所需的功能类型。 使用DataSet 可执行以下操作:

  • 在应用程序中将数据缓存在本地,以便可以对数据进行处理。如果只需要读取查询结果,则 DataReader 是更好的选择。

  • 在层间或从 XML Web services 对数据进行远程处理。

  • 与数据进行动态交互,例如绑定到 Windows 窗体控件或组合并关联来自多个源的数据。

  • 对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用。

如果不需要 DataSet 所提供的功能,则可以通过使用 DataReader 以只进、只读方式返回数据,从而提高应用程序的性能。 虽然DataAdapter 使用 DataReader 来填充DataSet 的内容但使用 DataReader 可以提升性能,因为这样可以节省DataSet 所使用的内存,并将省去创建 DataSet 并填充其内容所需的处理。 

总结:所以,在只是需要查询的结果的时候,考虑到效率,如果查询的数据量巨大,最好还是用dataReade——时间换空间。

            如果查询的数据量不是太大的话,最好还是选择用dataSet(同时,dataset也很多的优点)——空间换时间。

三、使用DataReader时注意

关闭 DataReader

每次使用完 DataReader 对象后都应调用 Close 方法。

如果 Command 包含输出参数或返回值,那么在 DataReader 关闭之前,将无法访问这些输出参数或返回值。

请注意,当 DataReader 打开时,该 DataReader 将以独占方式使用 Connection。 在原始 DataReader 关闭之前,将无法对 Connection 执行任何命令(包括创建另一个DataReader)。



转载于:https://www.cnblogs.com/yjjm/archive/2012/02/06/2385859.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值