对于查询的结果集合是放在dataset还是datareader,两者有什么区别??

解决方案 »

  1.   

    差别很大。 DataSet 是一个in-memory db。而DataReader 只是一个单独的”视图“
      

  2.   

    使用DataSet就像是在内存存放一个小型数据库,可以修改再更新到数据库,
    以下的例子就是使用DataSet的一种方式,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
    使用DataREader,直读数据流,性能比较好。但读完sql返回的数据集后不保存数据。
    看一下的例子,
    http://blog.csdn.net/zhzuo/archive/2004/10/28/156647.aspx
      

  3.   

    看你对返回的记录需要做什么了
    如果仅仅是个显示数据的话,DataREader好些
    但是有时候需要对提取的数据院进行处理,比如对其试图进行RowFilter,Allow Edit ,Read only
    ...的设置的时候就用DataSet了
      

  4.   

    如果要操作数据用DataSet如果只读数据用DataReader
      

  5.   

    DataReader在处理过程中是不能断开连接的,采取的是流式读取DataSet是一个在内存中带结构的数据库,并且是遵循库--表--列的模式的,和你操作数据库是一样的
      

  6.   

    放在dataset中吧
    dataset可以操作呢,
    而dataread只能读取。对于两张表的操作,如并,交,差,除在c#中有什么方法实现吗?
    使用SQL语句。内联表等方法,不知道你具体说的是哪一类
      

  7.   

    要更新就得用DataSet了,操作完后要用DataAdapter对数据库进行更新
      

  8.   

    用DataSet进行各种插入,查询,更新datareader也很好用,但有缺点,针对逐条记录时会效率差一些,且一条条向后取数据,不能再向前
      

  9.   

    建议还是用DataAdapter+DataSet,这样不会像DataReader那样长期占用Connection。这在一个程序中,多个部分用同一个Connection操作数据库时候,DataReader的局限性表露无疑。
      

  10.   

    晕,DataReader获取只读、单向的数据流,用行指针返回记录。每次放一行到内存中;
    DataAdaptet+DataSet是ADO.net访问数据的精华,支持离线访问,可以将一个表或多个表放在内存中,data set 本来就是数据集的意思。你可以像操作真实的表一样在DataSet中完成操作,再传给数据库。