刚才小弟经一大哥指点,解决了SQL语句的问题,现在紧接着出现另一问题
看小弟代码:
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase  = Server.MapPath("db/db.mdb");
strConnection += "Data Source=" + DataBase;//赋值数据库路径给strConnection变量string strSQL1 = "SELECT * FROM login where username='" + Originame.Text + "'";
string strSQL2="UPDATE login SET [password]='"+Newpw.Text+"' WHERE username='"+Originame.Text + "'";//定义2个SQL语句。OleDbConnection objConnection = new OleDbConnection(strConnection);OleDbCommand objCommand =new OleDbCommand(strSQL1, objConnection);
OleDbCommand myCommand = new OleDbCommand (strSQL2,objConnection); OleDbDataReader objDataReader ;objConnection.Open();
objDataReader = objCommand.ExecuteReader();//下面的if语句是首先验证表中username字段有无 username='" + Originame.Text + "' 的行。if (objDataReader.Read()==false)
{
error.Text = "用户名输入有误!"; //表示没有相应的行
return;
}
else if(objDataReader.GetString(2)!=Originpw.Text)
{
error.Text="密码验证错误!";          //表示有相应的行,但是密码验证不正确
return;
}
else
{
myCommand.ExecuteNonQuery();         //全部验证通过,更新数据。
objConnection.Close();
}接着就会出现:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。 
打红的行为: myCommand.ExecuteNonQuery();请高手指点,第一个解决的 20分全给!谢谢~~~~~

解决方案 »

  1.   

    要先objDataReader.Close();才能myCommand.ExecuteNonQuery();
    因为objDataReader.Open();后objConnection已经被使用了,不能再用
      

  2.   

    你的意思是我在myCommand.ExecuteNonQuery(); 之前加一行objDataReader.Close();吗?
      

  3.   

    我试过了,不行,还是老样子的提示,不过加红的行为objDataReader.Close();了
      

  4.   

    if (objDataReader.Read()==false)
    {
    error.Text = "用户名输入有误!"; //表示没有相应的行
          objDataReader.Close();
    return;
    }
    else if(objDataReader.GetString(2)!=Originpw.Text)
    {
    error.Text="密码验证错误!";          //表示有相应的行,但是密码验证不正确 return;
    }
      

  5.   

    else if(objDataReader.GetString(2)!=Originpw.Text)
    {
    error.Text="密码验证错误!";          //表示有相应的行,但是密码验证不正确
    objDataReader
    .Close()。  
    return;
    }