应该是DataReader快些吧,不过数据量较大的时候可能同DataSet区别不大

解决方案 »

  1.   

    如果数据量不是很大的话,你可以使用DataReader,否则应用DataSet
      

  2.   

    Datareader的速度比dataset的速度快,如果在web上用,尽量用datareader
      

  3.   

    用datareader更快,它是直接读取数据,而dataset是提前保存到内存中保存,wrox出版的书中说,在不需要插入、删除操作只是读取的时候,最好使用datareader.
      

  4.   

    SqlDataReader是一行一行的读数据
    没每读完一行,索引会移到下一行,判断下一行是否存在,如果存在,就继续读
    直到把读完为止
    DataSet是一个可以处理数据的容器,放在内存中,可以通过DataAdapter与数据库进行交互
    还可以绑定页面的一些控件
      

  5.   

    大部分情况下,我们只需要输出数据,而没有控件的绑定和对数据的批量插入、修改操作的时候,还是用DataReader快一点。
    如果用绑定的话,还是要用DataSet,如果要绑定到DataGrid,并进行批量的更新操作时应该用DataSet
      

  6.   

    哦。谢谢各位。
    只考虑在读取的时候情况。
    我不太清楚DataSet的内部机制。
    在取其中的一段出来,DataSet它本身可以限制这个大小,
    而SqlDataReader好像有点类似于Cursor,一条条fetch下去,
    这样的话,无论我从哪个地方开始拿都是要从头开始(在程序)读,
    (DataSet是否在Sql那里就完成了呢?)
    当然后面的数据相对来说去读取的概率要低很多,假设概率是均匀分布的,
    就取中间某一段数据,这两个东东速度比较。
    也顺便请教下内存的消耗问题。
      

  7.   

    其实datareader的速度的速度真的比Dataset的速度快多了
    据测试Datareader的速度比dataset快27—56倍