这是我的代码:
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (pass1.Text != pass2.Text)
{
lblerror.Text = "Passwords do not match.";
}
else
{
DB db = new DB();
string pass = db.Encrypt(pass2.Text.Trim());
MySqlConnection sqlcon = new MySqlConnection(db.sqlstring());
MySqlCommand cmd = new MySqlCommand("changepassword", sqlcon);
cmd.CommandType = CommandType.StoredProcedure;
try
{
cmd.Parameters.Add(@"pass", MySqlDbType.VarChar).Value = pass;
cmd.Parameters.Add(@"user1", MySqlDbType.Int16).Value = Convert.ToInt16(Session["userKey"]);
sqlcon.Open();
cmd.ExecuteNonQuery();
//Response.Redirect("regex.aspx", false);
//Context.ApplicationInstance.CompleteRequest();
}
catch (Exception ex)
{
lblerror.Text = ex.Message;
}
finally
{
sqlcon.Close();
Session.Abandon();
Session.RemoveAll();
}
}
}
我的存储过程就是这样。
delimiter $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `changepassword`(IN pass varchar(100),IN user1 varchar(100))
begin
update users set Password = 'pass' where UserID = user1;
end;
当我在mysql工作台中使用call更新时,效果很好。
但是当我从asp.net的后端打电话
在表中将密码的值更改为“ pass”,但不会更改为“ string = pass”的实际值;
我的代码有什么问题?我在上面的代码中没有发现任何异常。