one connection can be only associated with one datareader at a time, either use multiple connections or use DataSet

解决方案 »

  1.   

    那当然了,你可以用dataset来记录第一个数据集,再用reader打开第二个
      

  2.   

    没办法的,一个connection对象只能与一个DataReader连接。你可以用几个相同的connection对象来产生DataReader
      

  3.   

    在一個數據庫聯接上不能同時有兩個或者兩個以上的 SqlDataReader打開的。
    所以每次使用后必須關閉 SqlDataReader.
      SqlDataReader R1= cmd.ExecuteReader();
      while(R1.Read())
      {
        sqlstr = "select * from 表2"
        //再新建立一個聯接即可。
        SqlDataReader R2= cmd.ExecuteReader();  //到这里报错,该怎么办?
       }
      

  4.   

    SqlDataReader R1= cmd.ExecuteReader();
      while(R1.Read())
      {
        sqlstr = "select * from 表2"
       //执行完后
       R1.Close();
        SqlDataReader R2= cmd.ExecuteReader();  //到这里报错,该怎么办?
       }
      

  5.   

    SqlDataReader对像打开后是一直保持连接的(这与DataSet不一样),在每次用完及时关闭连接,下次用时再打开就不会有错了。
      

  6.   

    OleDbConnection Conxxwgl = new OleDbConnection(ConfigurationSettings.AppSettings["ConnXxwgl"]);
    string StrGetInfo = "select * from xxwt_bm_dw where dwdh = '" + dwdh + "'";
    OleDbCommand OlecmdInfo = new OleDbCommand(StrGetInfo,Conxxwgl);
    Conxxwgl.Open();
    OleDbDataReader OleReader;
    OleReader = OlecmdInfo.ExecuteReader();
    while (OleReader.Read())
    {
    _Dwdh = OleReader["dwdh"].ToString();
    _Dwmc = OleReader["dwmc"].ToString();

    }
    Conxxwgl.Close();
    return true;