我使用的是存储过程分页,每次执行把对应的数据一次性读取到datatable,然后在客户端,来操作。datareader速度比较快,我一般使用来读取有有一条记录的数据,然后填充内存中的对象。我现在想知道,一个列表,我在用asp.net读取到页面上的时候,用datatable 还是用datareader一条一条来读取,用datareader是不是会占用connection 的时间过长?

解决方案 »

  1.   

    datatable好一点
    出错率小
    datareader在读取的时候一直与数据库连接
    小的数据用DATAREADER好,速度快,数据多的时候就容易出错
      

  2.   

    在用asp.net读取到页面上的时候,用datatable 还是用datareader一条一条来读取
    用datareader是不是会占用connection 的时间过长?
    ------------------------------------------
    用dataTable好. 
    DataReader会一直保持与数据库的链接.直到你主动断开.
    补充:
    使用DataTable,DataReader的最佳时机:
    DataTable:
    1.在结果的多个离散表中进行导航。
    2.操作时,涉及多个数据源。(xml,some dataBase,or excel's data).
    3.在各层之间交换数据.或者使用Web Server等.(注:dataSet可以被远程传递到客户端的哦!)
    4.重用数据,多数用于通过缓存,获得性能方面的改善(比如:Sort,Search,Filter)
    5.对每条记录有着大量的业务处理.
    6.使用XML对数据进行操作.
    DataReader:
    1.不需要缓存数据。
    2.你要处理的数据集太大,mem放不下了。考虑使用DR。
    3.一旦需要以仅向前,只读方式快速读取数据。
    简单说几条,LZ根据自身情况定。
      

  3.   

    如果只是读取就显示,就用dataReader,将数据放入一个泛型列表,也符合2.0的泛型嘛
      

  4.   

    dataReader可以在close时自动关闭连接
      

  5.   

    datatable是个实体好操作效率高