C#SQL更新语法错误

时间:2017-08-22 21:30:33

标签: c# sql sql-update

我在UPDATE声明中遇到了愚蠢的麻烦。我正在尝试使用UPDATE在用户表中更改密码,并且我一直收到"语法错误"。无法找到原因...

在我的表格中,我有6个不同的列,包括usernamepassword

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();
}

1 个答案:

答案 0 :(得分:0)

密码columnname和/或users table-name可能是关键字,因此您必须将它们转义。 在SQL Server中,您可以使用括号来执行此操作:

UPDATE [users] SET [password] = @pass WHERE username = @user