我先用SqlDataReader reader = sqlCom.ExecuteReader(); 读取了一些数据。但我还需要查询数据库别的数据,就用了sqlCom.ExecuteScalar().ToString(); 但说要先关闭reader,我就想问一下,reader里的数据我还没用完,还需要用。如果我关闭了reader,会不会连reader里的数据也清除了?

解决方案 »

  1.   

    关闭后不能使用
    ExecuteReader(CommandBehavior.CloseConnection) 
      

  2.   

    这个问题要淡定,换中方式解决吧,多表sql联合查询?多数据库,数据库联合查询?
    为什么要一条一条读呢?不能一起读出来操作码?
      

  3.   

    先把数据取出来放入DataTable,再取别的数据.
      

  4.   

    顶 LS 先把结果存到 dataset里面
      

  5.   


    那是因为你胡乱共享了SqlConnection,而跟DataReader无关。DataReader当让无需关闭,但是你不能胡乱用什么static的SqlConnection。实际上,对于这种盲目地以为什么static的SqlConnection的程序员,我们一直采取看笑话的态度。这缺乏基本的做产品的经验,也没有遇到一个真正有开发经验的老师。
      

  6.   

    你必须为sqlCom传递另外一个Connection属性,它必须使用另外一个数据库连接。
      

  7.   

    SqlDataReader是个独占数据库连接的家伙,你需要建立另一个连接
      

  8.   

    先读出来放在dataset里,然后在dataset里去抓吧,不这样做就盗梦了
      

  9.   

    先读出来放在dataset里,然后在dataset里 那个还不如直接用 dataset
      

  10.   

    这个貌似很强悍,如果你能找出来方法,那么微软就要找你了,或者你也可以找他,这么大的漏洞啊!reader的特点是什么呢?一旦关闭,就释放掉相关的资源了啊!建议,可以将数据读出来,存起来,已被以后用啊,实在没办法,搞个DataSet 不就是整个表了么?楼上的,关电脑 还能上csdn 太贴切了,望 楼主 好好考虑!!!