OleDbCommand updatecmd = new OleDbCommand("Update [PassWord] Set [dbPassWord] = @PassWord",Conn);
updatecmd.Parameters.Add(new OleDbParameter("@dbPassWord",OleDbType.VarChar,10));
updatecmd.Parameters["@dbPassWord"].Value = this.webNewPwd.Text;
updatecmd.ExecuteNonQuery();
Conn.Close();
Response.Write("<script>alert('密码修改成功!');location.href='index.aspx';</script>");
Response.End();
只运行这段代码,SQL语句中@PassWord,其中@PassWord是不存在的,但也能正常运行,而且运行结果正确的,为什么?

解决方案 »

  1.   

    updatecmd.Parameters.Add(new OleDbParameter("@dbPassWord",OleDbType.VarChar,10));
    updatecmd.Parameters["@dbPassWord"].Value = this.webNewPwd.Text;
    上面的语句一定定义了,怎么会不存在呢?不明白lz什么意思~!
      

  2.   

    updatecmd.Parameters["@dbPassWord"].Value = this.webNewPwd.Text;
    这句是复制了。
      

  3.   

    updatecmd.Parameters["@dbPassWord"].Value = this.webNewPwd.Text;
    这句是复制了。
    复制了,但我定义的不是@PassWord你们可以复制代码去测试,完全正确没有错误
      

  4.   

    这个可能和数据有关(只是可能)
    在MSSql定义的参数的数量可以超出SQL定义的参数数量,在操作Oracle时就不可以.
      

  5.   

    是ACCESS数据库,非MSSQL谁能帮忙解释一下原因