sqldatareader 对象,如何在打开前判断是否已经打开,已打开,就不能执行
下面的代码,只能执行一次,再执行时,提示 datareader 已经打开,需要先关闭它。
可是我如何在打开前,先判断一下,这个datareader是否已经打开呢,如果已经打开,就先关闭它。
            strsql = "select 编号,姓名,密码 from uuser where 编号='"+strUser.Trim() +"'";
            command.CommandText=strsql;
            dataReader = command.ExecuteReader();
            dataReader.Read();

解决方案 »

  1.   

    我不想关闭连接,因为我用的是“长连接”,我只想关闭一个 sqldatareader ,
    关闭的目的,是重新用别外的sql语句来打开。
      

  2.   

    sqldatareader 这个好像不能保存的么。应该执行完就没了吧
      

  3.   


                command.CommandText = "select * from myTable";
                dataReader = command.ExecuteReader();
                // dataReader.Read()
                dataReader.Close();            command.CommandText = "select * from myTable";
                dataReader = command.ExecuteReader();
                // dataReader.Read() 
                dataReader.Close();
      

  4.   

    这个应该是执行发生异常了,或许你根本就没打开连接。
    Sqlconnection conn=new Sqlconnection("database=,server,uid,pwd");
      strsql = "select 编号,姓名,密码 from uuser where 编号='"+strUser.Trim() +"'";
                command.CommandText=strsql;
                command.connection=conn;
                conn.open();
                dataReader = command.ExecuteReader();
                dataReader.Read();
                conn.Close();
      

  5.   

    using (SqlConnection cn = new SqlConnection(“”))
      {
      SqlCommand cmd1 = new SqlCommand("", cn);
      cn.Open();
      using (SqlDataReader dr1 = cmd1.ExecuteReader())
      {
      while (dr1.Read())
      {
      string sql= "";
      SqlConnection conn2 = new SqlConnection("");
      SqlCommand cmd2 = new SqlCommand(sql, conn2 );
      cmd2.ExecuteNonQuery();
      }
      }
      }