那种会稳定些?
即不容易出现获取不到连接的问题?(连接池已满...)
高手们用那种比较多呢?

解决方案 »

  1.   

    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接。至于那种“比较多”,我早已经没有感觉了。任何人可以采取任何形式。如果一个人认为DataReader足够,我会考虑一下我是不是对数据分析需求写得太简单了。如果我的数据处理需求足够复杂,而一个人可以使用DataReader达到功能需求,我没有任何意见。至于说那种编程更简练,由编程者自己去选择吧。至于考虑“性能差异”,其实页面对象从开始实例化之后就执行了复杂几千倍被的许多代码,为什么在这千分之一的地方去提高几分之一秒的效率?如果在逻辑设计、流程、缓存等等大的方面任何一个地方进行优化,程序提高至少百分之几十的效率,甚至提高数倍效率,才值得牺牲编程的简洁去追求速度。
      

  2.   

    如果你检测页面实例化到销毁所花的时间,当你的程序从DataSet到完全使用DataReader修改之后,时间几乎没有缩短。毫无疑问,肯定有一些缩短(如果故意用逻辑极其简单的数据读取程序来测试),但是没有有意义的缩短。对于简单程序,选择DataReader还是DataSet,更多地是个人爱好问题。
      

  3.   

    datareader遍历速度快.
    dataset能做到所谓的"离线访问".
    各有各的好处,哪里用什么,看需求
    如果其中一种能完全取代另一种,那微软也没必要出两种对象.
      

  4.   

    个人习惯问题.不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么?
    但是二者的差别确实非常小,所以用哪个,无所谓
      

  5.   

    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接
    不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么? 
      

  6.   

    速度上DataReader和DataTable好过DataSet
      

  7.   

    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接 
    不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么? 
    ----------------------
    我有个疑问:我的访问是用的下载的SqlPager,他的内部机制应该是会关掉的吧?
    我用using(SqlDatareader sdr=Dataaccess.sqlhelper.******)这种形式读取数据,这个应该是自己关掉吧??
    不用sdr.close()了吧?
    现在的问题是:如果将上面的语句放到一个循环语句里面,很容易出现 "连接池已满"这种情况(前提是可能循环1,2百次),如果换成dataset,情况会好很多,
    据说是 datareader的并发问题,哪位高手给解释下?????另外个问题:高手们都是自己写访问数据库的类,还是用下载的DLL文件?????
      

  8.   

    很多人在用sqlHelper.
    "连接池已满"....
      

  9.   

    只要能保证尽可能晚地打开连接,尽可能早地关闭连接,使用DataReader效率还是不错的
      

  10.   

    一。连接池已满
    打开的数据库链接要及时关闭。
    二、关于datareader和dataset
    datareader是只读向前的,如果你只是显示数据,建议用datareader
    dataset相当于内存中的数据库,不过是离线的。
    占用的内存比较多,
    但是可以做一些数据的更新,也就是对dataset中数据的修改可以更新到数据库