我有一个网页,用户输入他们当前的用户名和密码。如果它们与数据库中的用户匹配,则密码将更改为新密码。
如果没有错误且密码已更改,则会将用户重定向到初始登录页面。如果出现错误,则会显示错误消息。
然而,目前密码没有改变,并且当应该有错误时,即当密码没有改变时,它只是将用户重定向到登录页面。
我的代码:
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 ");
}
}
答案 0 :(得分:5)
您甚至没有执行命令,只是打开连接,创建MySqlCommand
然后立即关闭连接:
MySqlCommand cmd = new MySqlCommand(SqlString, SqlConnection);
int result = cmd.ExecuteNonQuery();
SqlConnection.Close();
顺便说一句,您应该使用parameterized queries来避免SQL Injection
。