asp.net C# acess数据库请大家帮我改改,错误提示:
"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。"
 string connstring = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;        OleDbConnection con = new OleDbConnection(connstring);
        con.Open();
        OleDbCommand cm = new OleDbCommand("select fenlei2 from flash group by fenlei2", con);        OleDbDataReader dr = cm.ExecuteReader();        while (dr.Read())
        {
            string strsql = "select SClass from SClass where SClass="+dr.GetString(0);
            OleDbCommand cm1 = new OleDbCommand(strsql, con);
            OleDbDataReader dr1 = cm.ExecuteReader();
            if (!dr1.HasRows)
            {
                string addsql = "insete sclass(SClass) values('" + dr.GetString(0) + "')";
                OleDbCommand cm2 = new OleDbCommand(addsql, con);
                cm2.ExecuteNonQuery();
            }            Response.Write(dr.GetString(0));
            Response.Write("<br>");
        }
        con.Close();

解决方案 »

  1.   


    ADO.NET 里面 一个 Connection 只能同时用于一个 DataReader
      

  2.   

    楼上的,我知道“ADO.NET 里面 一个 Connection 只能同时用于一个 DataReader”但我不晓得怎么解决这个问题啊,,我要实现上面的功能
      

  3.   

    改sql语句吧,select SClass from SClass where SClass in
    (select fenlei2 from flash group by fenlei2)
    这样不用两个reader了
      

  4.   

    或者用楼上的   或者两个DR或者两个DT
      

  5.   

    我意思是想用DataSet来实现多个记录集的操,但我不知道怎么用
      

  6.   

    string strsql = "select SClass from SClass where SClass="+dr.GetString(0);
    OleDbCommand cm1 = new OleDbCommand(strsql, con);
    ===========》
    重新开个连接
    OleDbConnection con2 = new OleDbConnection(connstring);
    con2.Open();
    OleDbCommand cm1 = new OleDbCommand(strsql, con2);
      

  7.   

    如果是sql server 2005支持多个活动结果集,可以在web.config的连接字符串进行修改:
    "Data Source=./;....;MultipleActiveResultSets=True" 但是不建议使用