.NET框架组件数据提供程序

[来源] 达内    [编辑] 达内   [时间]2013-02-26

.NET框架组件数据提供程序

  .NET框架组件中的数据提供程序是应用程序与数据源之间的一座桥梁。它允许你从数据源返回查询的结果,在数据源上执行命令,把数据集中的改变提交到数据源。本文包含了怎样选择最适合需求的.NET框架组件数据提供程序。

  使用哪种.NET框架组件数据提供程序

  为了使应用程序获得最佳的性能,需要使用最适合数据源的.NET框架组件数据提供程序。

  连接到SQL Server 7.0及以上版本

  当连接到SQL Server 7.0及以上版本时,为了获得最佳性能应该使用SQL Server .NET 数据提供程序。SQL Server .NET数据提供程序设计为直接访问SQL Server,没有其它附加的技术层。下图(图1)说明了访问SQL Server 7.0及以上版本的多种技术之间的差别。

  图1.访问SQL Server 7.0及以上版本的连接方法

  连接到ODBC数据源

  名字空间中的ODBC .NET数据提供程序的结构与SQL Server和OLE DB的.NET数据提供程序相同。ODBC .NET数据提供程序使用"ODBC"前缀和标准的ODBC连接字符串。

  注意:ODBC .NET数据提供程序包含在.NET框架组件1.1以上版本,包含ODBC .NET数据提供程序的名字空间是System.Data.Odbc。

  使用DataReader、DataSet、DataAdapter和DataView

  ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader。DataSet提供内存中关系数据的表现--包括表和次序、约束等表间的关系的完整数据集合。DataReader提供快速、只向前、只读的来自数据库的数据流。

  使用DataSet时,一般使用DataAdapter(也可能是CommandBuilder)与数据源交互,用DataView对DataSet中的数据进行排序和过滤。DataSet可以被继承来建立强化类型的DataSet,用于暴露表、行、列作为强化类型对象属性。

  下面的内容包含什么时候使用DataSet或DataReader,以及怎样优化访问它们所包含的数据,也包括怎样优化DataAdapter和DataView的使用(也包括CommandBuilder)。

  DataSet与DataReader的对比

  在设计应用程序时,决定使用DataSet还是DataReader需要考虑应用程序需要的功能。

  使用DataSet是为了实现应用程序的下述功能:

  l 操作结果中的多个分离的表。

  l 操作来自多个源(例如来自多个数据库、XML文件和电子表格的混合数据)的数据。

  l 在层之间交换数据或使用XML Web服务。与DataReader 不同,DataSet能被传递到远程客户端。

  l 通过缓冲重复使用相同的行集合以提高性能(例如排序、搜索或过滤数据)。

  l 每行执行大量的处理。在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长,从而降低效率。

  l 使用XML操作(例如XSLT转换和Xpath查询)维护数据。

  在应用程序需要以下功能时使用DataReader:

  l 不需要缓冲数据。

  l 正在处理的结果集太大而不能全部放入内存中。

  l 需要迅速一次性访问数据,采用只向前的只读的方式。

  注意:当填充DataSet的时候,DataAdapter使用DataReader。因此使用DataAdapter代替DataSet获得的性能是节约了DataSet消耗的内存和组装DataSet所需要的周期。这种性能的提高大部分是有名无实的,因此你应该根据需要的功能为基础来做设计决定。

资源下载