Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ms access中更新数据库时更新查询_C#_Ms Access - Fatal编程技术网

C# 在ms access中更新数据库时更新查询

C# 在ms access中更新数据库时更新查询,c#,ms-access,C#,Ms Access,我的更新查询 update tbl_Clients set Username=@Username, Password=@Password where Id=@Id 当我在MS Access的更新语句中给出错误语法错误时更新此代码时,您使用问号(“?”)来引用查询中的参数,因此: update tbl_Clients set Username=?, Password=? where Id=? 当然,在将参数添加到命令对象时必须小心,其顺序与它们在查询中出现的顺序相同。有关一些示例,请参阅。

我的更新查询

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

当我在MS Access的更新语句中给出错误语法错误时更新此代码时,您使用问号(“?”)来引用查询中的参数,因此:

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

当然,在将参数添加到命令对象时必须小心,其顺序与它们在查询中出现的顺序相同。有关一些示例,请参阅。

原因可能是
Passowrd
是MS访问中的一种。您应该使用方括号,如
[Password]

update tbl_Clients set Username = @Username, [Password] = @Password where Id = @Id
作为最佳实践,将其更改为非保留字

顺便说一下,如果您使用的是
OleDb
provider,那么它并不关心命名参数。它只关心他们的命令。由于没有显示代码,我希望您按照命令中定义的顺序提供参数。喜欢

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;

如果出现相同的错误,我将不再工作。我有相同的顺序。您可以随意调用参数,只要您理解,重要的只是顺序,而不是名称。不必使用
。MSDN页面在这方面是错误的。我的顺序与命令cmd.Parameters.Add(“@Id”,OleDbType.Integer)中的顺序相同。Value=Id;cmd.Parameters.Add(“@Username”,OleDbType.VarChar,255)。Value=Username;cmd.Parameters.Add(“@Password”,OleDbType.VarChar,255)。Value=Password@吸血鬼不,你不是。看看您的命令,您在其中定义了
@Username、@Password、@Id
顺序。但您尝试使用
@Id、@Username、@Password
顺序添加参数。他们的顺序一定是一样的。是的,我想我一开始一定是。一般来说,我更喜欢在字段/列名前面加一个表别名,这样可以省去记住所有那些保留字的麻烦。@Fionnuala嗯,这听起来确实是个不错的解决方案。