更改密码无效

时间:2014-03-26 20:32:39

标签: c# mysql

我有一个网页,用户输入他们当前的用户名和密码。如果它们与数据库中的用户匹配,则密码将更改为新密码。

如果没有错误且密码已更改,则会将用户重定向到初始登录页面。如果出现错误,则会显示错误消息。

然而,目前密码没有改变,并且当应该有错误时,即当密码没有改变时,它只是将用户重定向到登录页面。

我的代码:

public static MySqlConnection CreateConnection()
    {

        String connectionString = "SERVER=127.0.0.1; DATABASE='dbnumericalmethods'; UID='root'; PASSWORD=''";
        MySqlConnection SqlConnection = new MySqlConnection(connectionString);
        return SqlConnection;
    }

    protected void btnChange_Click(object sender, EventArgs e)
    {
        MySqlConnection SqlConnection = CreateConnection();
        string OldPassword;
        string NewPassword;
        string Username;
        string ConfirmPassword;
        Username = txtUsername2.Text;  
        OldPassword = txtOldPassword.Text;
        NewPassword = txtNewPassword.Text;
        ConfirmPassword = txtConfirmPassword.Text;
        string SqlString = "update tblLogin set Identification='" + NewPassword + "' WHERE [Identification]='" + OldPassword + "' AND Username='" + Username + "'";
        SqlConnection.Open();
        MySqlCommand cmd = new MySqlCommand(SqlString, SqlConnection);
        SqlConnection.Close();

        if (OldPassword != "" && NewPassword != "" && ConfirmPassword != "") 
        {
            Response.Redirect("Login.aspx");
        }
        else
        {
            lblErrorMessage2.Text = ("Username ");
        }

    }

1 个答案:

答案 0 :(得分:5)

您甚至没有执行命令,只是打开连接,创建MySqlCommand然后立即关闭连接:

 MySqlCommand cmd = new MySqlCommand(SqlString, SqlConnection);
 int result = cmd.ExecuteNonQuery();
 SqlConnection.Close();

顺便说一句,您应该使用parameterized queries来避免SQL Injection