public static bool ChangePassword(string username, string password)
{
string sql = "UPDATE Users SET Password = @Password WHERE UserName = @Username";
OleDbCommand cmd = new OleDbCommand(sql, connect);
cmd.Parameters.AddWithValue("@Password", hashPassword(password));
cmd.Parameters.AddWithValue("@Username", username);
connect.Open();
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
return true;
return false;
}
连接字符串定义为类的属性。另外,我使用这种方法在其他函数中设置参数,它们可以正常工作,我不知道这是什么问题。 我收到此SQL语句的语法错误,我不知道这是怎么回事。
修改
这是一个起作用的函数,它是INSERT sql语句,但是代码相似。希望对您有所帮助,找出此UPDATE的问题。
public static bool CreateUser(string username, string password)
{
OleDbCommand cmd = new OleDbCommand("INSERT INTO Users VALUES(@Username, @Password)", connect);
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@Password", hashPassword(password));
connect.Open();
int rows = cmd.ExecuteNonQuery();
if (rows > 0) return true;
else return false;
}
答案 0 :(得分:0)
您可能想要这个
cmd.Parameters.Add("@Password", SqlDbType.VarChar).Value = hashPassword(password);
cmd.Parameters.Add("@Username", SqlDbType.VarChar).Value = username;
但是我们不知道。这两个字段的类型是什么。不知道这一点,我们就无法真正回答。