在mysql中更新存储过程不能与asp.net一起使用?

时间:2019-03-08 06:20:51

标签: mysql asp.net stored-procedures

这是我的代码:

 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”的实际值;

我的代码有什么问题?我在上面的代码中没有发现任何异常。

0 个答案:

没有答案