当前位置:编程学习 > C#/ASP.NET >>

深入解读 ADO.NET2.0的十大最新特性

答案:     这篇文章概述了.NET Framework 2.0里的ADO.NET2.0的最新特性。在以下叙述中将附带一些简单的例子来讨论这些特性的细节。
  
    以下便是ADO.NET新增的特性:
  
    1. 批量复制操作(Bulk Copy Operation)
  
    将数据从一个数据源批量复制到另一个数据源是ADO.NET 2.0的一个新特性。批量复制类提供了最快的方法把数据从一个数据源迁移到另一个数据源。每个ADO.NET的数据提供者都会提供相应的批量复制类。例如,在SQL.NET数据提供者里,批量复制操作是由一个叫SqlBulkCopy的类来完成的,它可以读取一个DataSet, DataTable, DataReader或XML 对象。
  
    2.批量更新(Batch Update)
  
    如果数据库服务器支持批量更新特性,Batch update代替了几个短周期提交请求的方式,从而大大改善在一个短周期内向服务器产生多个批量更新时的性能。UpdateBatchSize属性提供在一批更新里要更新行数。这个属性值能被限制到小数位。
  
    3.数据分页
  
    现在command对象具有一个新的执行方法叫做ExecutePageReader。这个方法有三个参数——CommandBehavior, startIndex, 和 pageSize。如果你想获得数据行数是101-200,你可以通过调用这个方法设置startIndex为101和pageSize为100而轻易完成这个功能。
  
    4.数据连接(Connection)明细
  
    现在你可以通过设置连接的StatisticsEnabled属性为真来获取一个连接更多的信息。Connection对象提供了两个新方法——RetrieveStatistics 和 ResetStatistics。RetrieveStatistics方法返回一个HashTable对象来填充连接信息,如:数据转移,用户明细,游标明细,缓存信息和事务处理。
  
    5.DataSet.RemoringFormat属性
  
    当DataSet.RemoringFormat设置为二进制时, DataSet的序列化格式由二进制格式代替了原有的XML标记格式,这种改变能显著改善序列化和还原序列化操作的性能。
  
    6. DataTable的加载(Load)与保存(Save)方法
  
    在以前版本的ADO.NET中,只有DataSet具有Load和Save的方法。Load方法可以把诸如XML等对象中的数据加载到一个DataSet对象中,同时Save方法可以保存数据到一个持久化存储媒体里。现在DataTable也支持这两种方法了。
  
    7.新的数据控件
  
    在工具箱中,你将看到如图1所示的新的控件——DataGridView, DataConnector和DataNavigator。利用这些控件,你能在数据绑定控件中提供数据导航(分页)功能。
  
  
  
  图1 数据绑定控件
  
  8. DbProvidersFactories类
  
    这个类能提供当前机器里的现有数据提供者(providers)列表。在写数据库依赖程序时,你能利用这个类及其成员为你的数据库查找最适合的数据提供者。
  
    9.自定义数据提供者(Provider)
  
    通过提供工厂类,现在ADO.NET可以扩展支持自定义数据提供者功能。你无需编写一个数据提供者支持代码。你可以用数据提供者基类以及连接字符串帮助你完成这些功能。
  
    10. DataReader新的执行方法
  
    现在command对象支持更多的执行方法了,除了旧的ExecuteNonQuery, ExecuteReader, ExecuteScaler和 ExecuteXmlReader方法,还加了新的执行方法,它们是:ExecutePageReader, ExecuteResultSet和 ExecuteRow。图2展示了Command对象在ADO.NET2.0支持的所有执行方法。
  
  
  
  图2 Command的执行方法
  
  总结
  
    ADO.NET2.0为开发者提供了许多新的、改良过的特性以改善性能和减少代码量。在这篇文章中,我论述了ADO.NET2.0的10大特性。在我以后的文章中,我将继续更详细的讨论这些特性。
  
  
  

上一个:使用 ASP.NET 语法创建模板
下一个:深入分析ADO.NET中的DataSet对象

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,