论文导读:DataAdapter对象充当了DataSet对象和数据源之间的桥梁,它能隐藏和Connection、Command对象沟通的细节。
关键词:AON.NET,NET数据提供程序,DataSet,数据访问方式
3.1.2Command对象
连接到数据库之后,就可以使用Command对象对数据库进行操作了。如进行数据添加、删除、修改等操作。Command也有两种类型:SqlCommand 和OleDbCommand,分别对应与两种数据源类型。可以通过SqlCommand对象直接操作SQL Server数据库,通过OleDbCommand操作支持ADO Managed Provider的数据源。
3.1.3DataReader对象
DataReader提供了一个简单的方法,允许程序在数据记录间进行只读的、单向(向前)的数据访问。使用时,首先建立与数据库的连接,然后建立要在数据库上执行的命令对象,再调用命令对象的ExecuteReader方法来创建一个DataReader对象。DataReader对象也有两种类型SqlDataReader和OleDbDataReader,分别对应与SQL数据源和OLE DB数据源。
3.1.4DataAdapter对象
DataAdapter对象充当了DataSet对象和数据源之间的桥梁,它能隐藏和Connection、Command对象沟通的细节。他使用Command对象在Connection对象的扶助下访问数据源,将Command对象中的命令执行结果传递给DataSet对象,并将DataSet对象中的数据的改动反馈给数据源。同理,也可以对底层数据保存体进行数据的添加、删除或修改操作。DataAdapter对象包含4个不同类型的Command。SelectCommand用来取得数据来源中的记录。InsertCommand用来添加记录到数据来源。UpdataCommand用来更新数据来源中的记录。DeleteCommand删除数据来源中的记录。发表论文。若数据来源是SQL Server 7.0或7.0以上版本,可以使用SqlDataAdapter对象,而OleDbDataAdapter则适合于其他的Managed OLE DBProvider。
3.1.5 DataSet对象
DataSet对象在ADO.NET中处于核心地位。它提供了一个与数据来源无关的数据表示方式,可以表示、存储和管理来自远程或本地数据库、XML文件或数据流甚至应用程序的局部数据。DataSet主要由两部分组成:DataTableCollction和DataRelationCollcetion。DataTableCollction包含零个或多个DataTable对象。一个DataTable对象代表驻留内存的数据表。它包含DataColumn所表示的列和Constraint所代表的约束的集合,这些列和约束一起定义了该表的结构。DataTable还包含DataRow所表示的行的集合,每个DataRow对象代表表中的一行数据。DataRelationCollcetion代表DataSet对象中表之间的关系集合,关系由DataRelation对象来表示。由于 DataSet 独立于数据源,与现有数据源的交互通过数据适配器DataAdapter 来控制。
4ADO.NET的两种访问数据库的方式
对于不同的应用需要,ADO. NET 设计了两种访问数据库的模式: 使用DataReader 对象进行基于连接的访问和使用DataAdapter 对象进行的非连接的访问。下面对两种访问模[3]式进行分析和比较:
(1)使用DataSet访问数据库。DataSet对象它能够提供读取数据的本地缓存,而且由于DataSet 对象对XML 良好的支持,使它特别适合于在应用的各层之间或通过Web Service 以XML 方式进行传递,另外它还能满足当所需数据来自于多个数据源(如多个数据库或文件) ,而又必须建立相互之间关联关系的需要。DataSet 对象同时也提供对获得数据的批量更新功能。发表论文。但构建DataSet 对象时需要较大的额外开销,使它在数据访问效率上较DataReader 对象稍逊。值得注意的是,由于每个DataSet 对象都会占据一定量的内存,如果设计不当,会造成DataSet 对象的大量生成,从而耗尽内存资源,严重降低性能。
(2) 使用DataReader访问数据库。发表论文。当网络带宽足够高时,DataSet可以提高网络数据应用的可扩展性。但是,这种非连接方式的数据集需要更高的带宽和更多的内存,有些情况下这是不可能的。因此,ADO.net提供了DataReader。DataReader类似一个只读的光标,一次从数据库中读取一条记录,仅保存用户当前访问的记录。
由于这两种模式的设计目的不同,所以在应用程序开发中应该根据实际需要选择合适的数据库访问模式以发挥出ADO. ET的最佳性能,这对于提升应用程序性能有着非常重要的意义。由于一般的Web 应用只是需要从数据库中高效地读取数据,然后经过简单处理或者直接将其显示到用户页面或进行XML 输出。在这种情况下,应该优先使用DataReader 对象,而对于需要进行XML 交换、动态关联和交互的应用则应该选择DataSet 对象。
5 结束语
Web 应用程序的成功改变了典型分布式系统的面貌。现在大多数分布式系统都是 n 层系统,这类系统对扩展性和互操作性的要求越来越高。因此,非连接数据处理和XML成为最佳实践,而ADO.NET的出现满足了人们的需求。它支持工业技术标准,集合了所有用于数据处理的类。它不象ADO模型那样以数据库为核心,而是重在整体设计,是.NET平台的数据库应用程序的最终解决方案。
参考文献
1.C#编程语言程序设计与开发[M].北京:清华大学出版社,2003.
2.孟现飞,李浩,孙统风.ADO.NET数据访问模型研究[J].微机发展.2003(13):94-97.
3.华国栋,刘文予.基于ADO.NET的数据访问及其性能优化[J].计算机应用研究.2004(6):215-217.
4.C#编程技巧典型案例解析[M]北京:中国电力出版社,2005.
|