-2

我正在使用 MS access 2010 并尝试使用 C# windows 应用程序连接它并使用此代码更新数据,

com.CommandText = "UPDATE Admin SET UserName = @UN, Password = @Pass, ValidID = @VID WHERE ID = @ID";
com.Parameters.AddWithValue("@UN", TBUserName.Text);
com.Parameters.AddWithValue("@Pass", TBPassword.Text);
com.Parameters.AddWithValue("@VID", CBvalidation.SelectedValue);
com.Parameters.AddWithValue("@ID", CBEmpName.SelectedValue);

ds.Tables.Add("Admin");
da.Fill(ds, "Admin");

在运行时出现的错误是

“UPDATE 语句中的语法错误”

所以请你能告诉我错误在哪里吗?

4

3 回答 3

2

PASSWORD 是 Access JET/SQL 中的保留关键字
您需要用方括号将其封装

com.CommandText = "UPDATE Admin SET UserName = @UN, " + 
                  "[Password] = @Pass, ValidID = @VID WHERE ID = @ID";

如果可能的话,我建议您更改此字段的名称。
对于此表上的每个未来查询,您总是会遇到这个问题。

于 2013-10-04T21:04:03.913 回答
0

PASSWORD是 Access 上的保留关键字

将它与方括号一起使用,例如[PASSWORD]

com.CommandText = "UPDATE Admin SET UserName = @UN, [Password] = @Pass, ValidID = @VID WHERE ID = @ID";

作为一般建议,不要对数据库中的标识符和对象名称使用保留关键字。

于 2013-10-04T21:05:23.813 回答
0

尝试这个

 com.CommandText = 
  "UPDATE Admin SET UserName = @UN, [Password] = @Pass, ValidID = @VID WHERE ID = @ID";

您不能使用Password,因为它是保留而不是使用[Password]

于 2013-10-04T21:05:32.877 回答