我在UPDATE
声明中遇到了愚蠢的麻烦。我正在尝试使用UPDATE
在用户表中更改密码,并且我一直收到"语法错误"。无法找到原因...
在我的表格中,我有6个不同的列,包括username
和password
。
String salt = ""; // Initializing salt string variable to save the salt
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database_MT.accdb;Jet OLEDB:Database Password=********************");
con.Open(); //Opening the connection
OleDbCommand cmd1 = new OleDbCommand("UPDATE users SET password = @pass WHERE username = @user", con);
salt = CreateRandomSalt();
cmd1.Parameters.AddWithValue("@pass", hashPassword(newPasswordTextBox.Text, salt));
cmd1.Parameters.AddWithValue("@user", verifiedUser);
try
{
cmd1.ExecuteNonQuery();
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
string newException = ex.ToString();
ThreadExceptionForm newEx = new ThreadExceptionForm(newException);
newEx.ShowDialog();
}
答案 0 :(得分:0)
密码columnname和/或users table-name可能是关键字,因此您必须将它们转义。 在SQL Server中,您可以使用括号来执行此操作:
UPDATE [users] SET [password] = @pass WHERE username = @user