SqlConnection SqlConn=new SqlConnection("Server=192.168.0.2;UID=q;PWD=q;Database=q");SqlConn.Open();
SqlCommand MyCommand = new SqlCommand("SELECT top 1 * FROM vod_User",SqlConn);
SqlDataReader myReader=MyCommand.ExecuteReader();好象上面的SqlDataReader在close之前也是一直连着数据库,这时如果还有其他地方有查询的话就会出现以下异常:
    System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首
先将它关闭。请问如果我现在要同时对多次查询的结果做处理该如何写代码?

解决方案 »

  1.   

    SqlDataReader要手动关闭adpter的不需要
      

  2.   

    SqlDataReader这个我有手动关闭,但是要是同时多次查询的话就有可能一些没关闭一些就开始查询了,结果就出异常,请问有没什么好办法啊?
      

  3.   

    每次都要關閉連接哦
    myreader.close()
    mycommand.close()
      

  4.   

    每次都要關閉連接哦
    myreader.close()
    mycommand.close()
      

  5.   

    mycommand.close()
    没有close()这个方法啊?
      

  6.   

    用mycommand.Disponse()这个那SqlCommand不是没查询一次就new一回?
      

  7.   

    SqlDataReader myReader=MyCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    这样调用可以关闭连接的
      

  8.   

    SqlConnection这个与数据库的连接不能关,我要一直调多线程查询库中的某个表。
      

  9.   

    myreader.close()
    mycommand.Disponse()
    都不行啊!
      

  10.   

    打开前判断一下
    if (connTest.State == System.Data.ConnectionState.Closed)
    {
        connTest.Open();
    }
      

  11.   

    解决啦!
    谢谢楼上各位!
    原来是我在一个方法中嵌套查询在没有myreader.close()只前就又查询了!
    希望以后别在碰到!
    南无喔弥头佛!