你在循环结束以后没有关闭OledbDR ,加上OledbDR.Close();
就可以了!

解决方案 »

  1.   

    while(OledbDR.Read())
    {
     if(OledbDR.GetValue(0).ToString()==sid.Text.ToString())
      {//如果ID重复就先清空对象
                  .......
                  .....
                 }    
                  if(OledbDR!=null)
       {
    OledbDR.Close();
    OledbDR=null;
       }
                  }
      

  2.   

    同意 windofcity(三十七度半),或者改用DataSet来取数据做循环
      

  3.   

    在打开一个DataReader末关闭之前
    不能再打开其它的联连