2013-10-04 150 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]