我的更新查询
update tbl_Clients set Username=@Username, Password=@Password where Id=@Id
当我在更新语句中给出错误语法错误时更新此代码
答案 0 :(得分:1)
原因可能是因为Passowrd
是MS Access中的reserved keyword。您应该使用方括号,如[Password]
update tbl_Clients set Username = @Username, [Password] = @Password where Id = @Id
作为最佳做法,请将其更改为非保留字。
顺便说一下,如果您使用OleDb
提供商,则它不会关注指定的参数。它只关心他们的订单。由于您没有显示您的代码,我希望您按照在命令中定义的顺序提供参数。等;
var cmd = OleDbCommand("update tbl_Clients set Username = @Username, [Password] = @Password where Id = @Id");
cmd.Parameters.Add("@Username", OleDbType.VarChar, 255).Value = Username;
cmd.Parameters.Add("@Password", OleDbType.VarChar, 255).Value = Password;
cmd.Parameters.Add("@Id", OleDbType.Integer).Value = Id;
答案 1 :(得分:0)
对于MS Access,您使用问号("?")以便在查询中引用参数,因此:
update tbl_Clients set Username=?, Password=? where Id=?
当然,您必须小心地将参数添加到命令对象中,其顺序与查询中显示的顺序相同。有关示例,请参阅this blog post。