2013-10-02 30 views
0
Using con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = Mokmeuh.accdb") 
     con.Open() 
     dAdapter.UpdateCommand = New OleDbCommand("UPDATE Articles SET Nom = @p1, Prix = @p2, Quantité = @p3 WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3)))", con) 
     dAdapter.UpdateCommand.Parameters.Add("@p1", OleDbType.VarChar, 4, "Nom") 
     dAdapter.UpdateCommand.Parameters.Add("@p2", OleDbType.Single, 4, "Prix") 
     dAdapter.UpdateCommand.Parameters.Add("@p3", OleDbType.Integer, 4, "Quantité") 

     dAdapter.Update(dSet.Tables("Articles_table")) 
    End Using 

這將是我與我的參數的命令,但我把我的錯誤,所以我把它錯了,但我不知道如何解決它,錯誤是告訴你:該更新影響0,它應該有這麼一個影響Oledeb命令生成器,聽錯了

,我在哪裏可以得到這個錯誤

編輯:數據庫類型

enter image description here

+0

我會刪除您的更新語句,嘗試在步驟中找到那裏的錯誤。另外,一個好主意是訪問並在那裏構建SQL,還有一個Query編輯器,你可以在這裏寫出這條語句,如果它沒有在那裏顯示結果,那麼你沒有它的代碼是錯誤的。您需要嘗試逐步解決這類問題。 – Derek

+0

請不要使用*文字更新問題內容*某些版主請刪除此*等我已回滾該更新。如果您仍然希望,您可以**主持**主持人的注意,但我不認爲該請求會被接受,因爲這個問題已經有了答案。 – Harry

回答

1

不幸的是,我們不ķ現在你的數據已經足夠幫助你了。但是,這裏是你如何能夠幫助自己。將該UPDATE轉換爲SELECT並查看得到的結果。你的WHERE sql看起來很奇怪,但是如果沒有你的數據,它可能只是完全合乎邏輯而看起來很奇怪。

SELECT * FROM Articles WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3))) 
+0

對於缺乏數據我感到抱歉,你還需要什麼?桌子? – Mokmeuh

+0

你有沒有嘗試上面提到的SELECT思想?如果你這樣做,我們不需要數據。 – Steve

+0

給我一秒我在課堂上,你要我運行它通過vb或MS訪問 – Mokmeuh