2013-10-31 81 views
-2

我正在做一個項目,可以添加,刪除和編輯數據庫中的用戶數據。如何解決數據庫更新命令錯誤?

我正在使用Microsoft Visual Basic 2008速成版和我正在使用Microsoft Access 2007-2013的數據庫。

好了,所以基本上我的問題是使用「添加」按鈕和「刪除」按鈕,也「保存」按鈕,當我點擊「添加」按鈕,我得到這個錯誤:

Syntax error in INSERT INTO statement.

下的代碼:dtaadpUser.Update(dtasetSB, "tbluser_data")

的添加按鈕全碼:http://gyazo.com/3239e0abb3288d693f604998a90b490c

而且搜索在搜索框中輸入一個用戶名或姓和用戶顯示爲具有然後單擊「刪除」按鈕後,我得到這個錯誤:dtaadpUser.Update(dtasetSB, "tbluser_data")

:代碼下

Syntax error (missing operator) in query expression '((UserID = ?) AND ((? = 1 AND First name IS NULL) OR (First name = ?)) AND ((? = 1 AND Surname IS NULL) OR (Surname = ?)) AND ((? = 1 AND Gender IS NULL) OR (Gender = ?)) AND ((? = 1 AND Type IS NULL) OR (Type = ?)) AND ((? = 1 AND DOB IS NULL) OR (DOB = '.

完整代碼刪除按鈕:http://gyazo.com/0114dbf615593fd1cc282cbbd3265371

而當我點擊'編輯'按鈕並更改其中一個字段,然後單擊「保存」我得到這個錯誤:

Syntax error in UPDATE statement.

下的代碼:dtaadpUser.Update(dtasetSB, "tbluser_data")

我認爲這個問題是與.Update命令的事,但我可能是錯的,它只是我的想法,無論哪種方式,我不知道如何解決問題...

+1

請不要發佈您的整個項目源代碼。在問題的正文中提出一個具體問題並僅發佈相關代碼。如果發佈的內容太多,則將其縮減爲可以證明問題的示例。 – Blorgbeard

回答

1

有一個領域內有一個空間。這會在您的更新插入和刪除查詢中出現問題。 你可以嘗試使用OleDbCommandBuilder

Dim adapter = new OleDbDataAdapter("SELECT * FROM tbluser_data", connection) 
Dim builder = new OleDbCommandBuilder(adapter) 
builder.QuotePrefix = "[" 
builder.QuoteSuffix = "]" 

解決您的問題,這應該足以強制適配器使用OleDbCommandBuilder用方括號括起來的字段名稱創建相應的命令。

但是這應該與訪問測試.....

+0

我會在哪裏插入這個命令?它是如何工作的? – Neilr

+0

構建適配器時。適配器應該在表單級別保持全局,所以當需要執行更新命令時,您可以重複使用同一個實例。 – Steve

+0

仍然出現相同的錯誤。現在我已將數據庫中的所有字段更改爲不含空格。 。它仍然不起作用 – Neilr

相關問題