我们知道DataReader的优势是速度快,而DataSet则提供了更为强大的功能,但我们在web开发的时候用的
的都是三层架构,而且用实体类进行数据传输,在这种情况下,DataSet的优势就完全没有了,而且还占用很多的内存,大家平时用哪个呢,在三层中还用DataSet么

解决方案 »

  1.   

    在一般的状况下,DataReader 的速度比 DataSet 来得快,
    在 IIS 服务器上所使用的内存也较少。
    如果数据来源控件只是用来填入控件的清单成为其选项,亦或是数据绑定控件并不需要提供排序或分页功能的话,则应该使用 DataReader。
    反之,如果数据绑定控件需要提供排序或分页功能的话,则使用DataSet并承担其各项负面效应。
      

  2.   

    在web开发中。如果实体类,而分页的话,有分页类可以使用,crud的操作数据传输也都用实体对象,
    所以感觉在这样情况下没必要用DataSet了,只是在数据访问层返回数据,DataReader就行了
      

  3.   

    http://blog.csdn.net/tiancs/archive/2008/05/12/2436250.aspx
      

  4.   

    三层的话,用DATAREADER在数据层。
      

  5.   

    两者区别没有完全理解,是的,只知道在DataReader填充DataSet内部也用的是DataReader
    而在三层中,实体类,DataSet的优势在哪里?
      

  6.   

    根据需求来定,做过一个测试,数据量在几万条以内的时候,dataset和reader的效率是差不多的。但是数据量越大,dataset的速度越慢。三层中,dataset的优势是可以直接返回table,table可以作为几乎所有控件的数据源。但是需要类型的装换。
          reader则需要List,list可以作为很多控件的数据源,我感觉没有table的多。不再需要转换。
    但是dataset的功能之强大,以至于我们很多时候没有必要使用它,比如他的表间约束。
    另外,三层中,实体类和dataset的优势 没关系,实体类可以看做不过是个临时数据载体。
      

  7.   

    首先看你的需求,一般在数据访问层中用DataRead读取并转换为List<T>
      

  8.   

    需要操作修改数据的时候用DataSet
    如果只要读取显示那就用DataReader