// 判断总分的优良等级
                 SqlConnection con3 = new SqlConnection("Server=.;database=QINXINJITUAN;uid=sa;pwd=12345;");
                 SqlDataReader dr1 = null;
                 con3.Open();
                 string score = "select details from FM_HUIZONG where item='score'";
                 SqlCommand cmd10 = new SqlCommand(score, con3);
                 dr1 = cmd10.ExecuteReader();
                 while (dr1.Read())
                 {
                     int s = Convert.ToInt32(dr1[0]);
                     if (s >= 90)
                     {
                         string score1 = "update FM_HUIZONG set DPT='优秀'where item='score'";
                         SqlCommand cmd11 = new SqlCommand(score1, con3);
                         cmd11.ExecuteNonQuery();
                     }
                     if (s >= 75 && s < 90)
                     {
                         string score2 = "update FM_HUIZONG set DPT='良好'where item='score'";
                         SqlCommand cmd12 = new SqlCommand(score2, con3);
                         cmd12.ExecuteNonQuery();
                     }
                     if (s >= 60 && s < 75)
                     {
                         string score3 = "update FM_HUIZONG set DPT='中等'where item='score'";
                         SqlCommand cmd13 = new SqlCommand(score3, con3);
                         cmd13.ExecuteNonQuery();
                     }
                     if (s >= 45 && s < 60)
                     {
                         string score4 = "update FM_HUIZONG set DPT='较差'where item='score'";
                         SqlCommand cmd14 = new SqlCommand(score4, con3);
                         cmd14.ExecuteNonQuery();
                     }
                     if (s <= 45)
                     {
                         string score5 = "update FM_HUIZONG set DPT='很差'where item='score'";
                         SqlCommand cmd15 = new SqlCommand(score5, con3);
                         cmd15.ExecuteNonQuery();
                     }
                 }
             
             
             }
             catch (Exception ex)
             {
                 Response.Write(ex.Message);
             }
这段代码提示“已有打开的与此命令相关联的 DataReader,必须首先将它关闭”。可是我不知道怎么修改,是不是之前的代码也要贴上来。谢谢大家了

解决方案 »

  1.   

    一个SQLDataReader只能打开一个连接
      

  2.   

    楼主应该把他们分开放在几个函数里边,然后在每个函数里边都调用con3.open().
    我觉得楼主应该专门为打开连接定义一个GetConnection()的函数,然后没调用一个dataReader之前都要调用此函数打开一个新的数据库连接
      

  3.   

    在加载完数据之后应该将datareader给关闭掉
      

  4.   

    在打开dataReader读数据的地方,读完后,关闭连接