Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
学习了VS2005有一段时间了,下面就总结一下objectdatasource 和sqldatasource的区别:
 一般在多层Web应用开发中建议尽量使用ObjectDataSource.ObjectDataSource 控件通过提供一种将相关页上的数据控件绑定到中间层业务对象的方法,为三层结构提供支持。在不使用扩展代码的情况下,ObjectDataSource 使用中间层业务对象以声明方式对数据执行选择、插入、更新、删除、分页、排序、缓存和筛选操作;而sqldatasource像大多数 ASP.NET2.0数据源控件一样,多用在两层应用程序层次中.此外:
1、SqlDataSource是针对SQL Server的,对其他数据库支持不够,例如在Oracle数据库时,要用存储过程返回结果集时,SqlDataSource就显得无能为力了.
2、ObjectDataSource提供了一个TypeName属性(而不是SqlDataSource 中的ConnectionString属 性),该属性指定执行数据操作的业务逻辑类的类,ObjectDataSource可以通过TypeName属性直接调用业务层的类,在多层应用中的 ObjectDataSource显得很实用,而SqlDataSource要在页面上指定ConnectionString、Command,系统的层 次结构被搞乱,不便于系统的维护工作。当然ObjectDataSource控件还提供了一些其他的很实用的属性如:EnablePaging属性、 SelectCountMethod属性、StartRowIndexParameterName属性和 MaximumRowsParameterName属性,
3、SqlDataSource只支持内存分页,而不支持数据库分页, ObjectDataSource 两者都支持,内存分页每次都检索出所有数据并 将其绑定到数据绑定控件中,虽然该控件只能一页一页显示这些数据,但是所有数据其实都已经被绑定到控件上了。而数据库分页的含义是显示到哪一页就检索并绑 定哪一页的数据。显然在大数据量的情况下,数据库分页的效率会高很多。
posted on 2009-07-23 15:03  Robin99  阅读(674)  评论(0编辑  收藏  举报