数据库以ms访问时更新查询

时间:2015-06-15 07:12:04

标签: c# ms-access

我的更新查询

 update tbl_Clients set  Username=@Username, Password=@Password where Id=@Id

当我在更新语句中给出错误语法错误时更新此代码

2 个答案:

答案 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