2013-10-04 124 views
-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语句”

所以请可以ü告诉我错误在哪里?

回答

2

PASSWORD是Access JET/SQL中的reserved keyword
你需要用方括号

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

如果可能的话,我建议你改变这个字段的名称来封装它。
对于此表上的每个未来查询,您都会遇到此问题。

0

PASSWORD是Access上的reserved keyword

用方括号使用它像[PASSWORD]

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

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

0

试试这个

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

不能使用Password,因为它被保留用来代替[Password]