string strConn = "...";
string strSQL = "...";
SqlConnection sqlConn = new SqlConnection(strConn);SqlCommand sqlComm = new SqlCommand(strSQL,sqlConn);
sqlConn.Open();
SqlDataReader sqlReader = sqlComm.ExecuteReader();
sqlConn.Close();SqlCommand sqlComm1 = new SqlCommand(strSQL,sqlConn);
sqlConn.Open();
SqlDataReader sqlReader1 = sqlComm.ExecuteReader();
sqlConn.Close();

解决方案 »

  1.   

    SqlDataReader是不离线的,也就是说只要SqlDataReader不关闭,它所使用的SqlConnection也就不会关闭!
      

  2.   

    SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
      

  3.   

    你把SqlConnection sqlConn声明成一个数据成员,并在页面启动时初始化它,在你的递归中每次只需关闭DataReader。最后执行完所有递归后,关闭SqlConnection就行了。
      

  4.   

    在sqlDataReader用完后将他关了可以了。
    SqlCommand sqlComm = new SqlCommand(strSQL,sqlConn);
    SqlDataReader sqlReader = sqlComm.ExecuteReader();
    sqlReader.Close();
      

  5.   

    一个connection 只能对应一个SqlDataReader
      

  6.   

    SqlDataReader
    独占连接的
    你可以考虑用dataset