• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
微软(北京).Net俱乐部-H2O、winnerzone
一个战士一旦穿上军装拿起武器就已经做好了战斗的准备,他将被派往无数战火纷飞的战场,每一次都会有生命的危险。
但是一旦他活下来了,那些都将成为光荣的历史被讲述和回忆。对于一个新兵,危险和机遇并存,机遇大于危险和压力。
博客园    首页    新随笔    联系   管理    订阅  订阅

对于Web开发到底是否应该使用DataReader(探讨)

对于Web开发到底是否应该使用DataReader? 今天我的那位非常忠实的DataReader哥们又给我说,为什么不扩展一个DataReader的数据操作类.我没有回答他的这个问题,只说了句一般Web开发不推荐使用这个东西.(因为以前给他说过这个问题). 那么到底在Web开发中是否要使用DataReader呢?
对于Web开发到底是否应该使用DataReader? 今天我的那位非常忠实的DataReader哥们又给我说,为什么不扩展一个DataReader的数据操作类.我没有回答他的这个问题,只说了句一般Web开发不推荐使用这个东西.(因为以前给他说过这个问题).
那么到底在Web开发中是否要使用DataReader呢?
首先我们来看下DataReader的概念.(MSDN上的内容)
DataReader是专门为数据处理以及快速地只进、只读访问数据而设计的组件。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。
大家看Msdn解释的后半句:
最后,DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。
个人理解,实际上DataSet操作数据库实际上是用到了DataReader.

那么DataSet是什么呢?

DataSet

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

也就是说DataSet是一个存储数据到本地化的一个容器.(个人认为)

那么我为什么要讨论这个问题呢?
就在于DataReader是一直链接数据库的.DataReader对数据的操作是使用了一个数据库链接的.而不能想DataSet一样可以直接将数据库链接关闭后,在对数据进行操作的.一切都是要在打开链接的情况下进行操作的.直到操作完关闭掉才释放数据库的链接资源.当业务量庞大的时候数据库链接会一直打开,耗费资源.
那么如果我希望返回一个字段的一个值呢?这个问题非常的难解.因为使用任何一个操作都可以进行.考虑到效率就使用DataReader,不考虑可以使用DataAdapter存放在DataSet中返回.

个人认为不推荐Web开发使用DataReader.

以上都是小弟的一些看法,肯定会有不对的地方.请高手们指点,谢谢了.给我们一个明确的在Web开发中如何灵活使用DataReader和DataSet的方法.

WINNERZONE
posted @ 2007-07-30 15:01  H2O、winnerzone  阅读(4191)  评论(53)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3