2017-09-19 35 views
0

我試圖更新我的數據庫中的條目,但是我不斷收到此錯誤:java.lang.IllegalArgumentException:綁定參數過多。分別提供了5個參數,但語句需要4個參數

java.lang.IllegalArgumentException: Too many bind arguments. 5 arguments were provided but the statement needs 4 arguments.

代碼如下:

int rowsAffected = getContentResolver().update(mCurrentInsulinaUri, values, null, null); 

值變量包含只有4個值,所以它在日誌中說。 日誌如下:

09-19 09:30:17.167 19589-19589/com.example.android.insulina V/EditorActivity: values size is: 4 
09-19 09:30:17.168 19589-19589/com.example.android.insulina V/EditorsActivity: values are: opis=waga cukier=100 nazwa=kasza jednostki=6 

在此先感謝您的幫助!

+2

[更新ContentValues中沒有設置所有列的數據庫中的項目]的可能副本(https://stackoverflow.com/questions/4706638/update-item-in-database-without-all-of-the-columns -set-in-contentvalues) – XtremeBaumer

+0

這些值包含在'values'變量中。你可以發佈'values'變量包含的內容嗎?它應該是一個包含5個元素而不是4的'ContentValues'。你可以通過調用'values.size()' – pleft

+0

來檢查這個日誌: 09-19 09:30:17.167 19589-19589/com.example.android .insulina V/EditorActivity:值大小是:4 09-19 09:30:17.168 19589-19589/com.example.android.insulina V/EditorsActivity:values是:opis = waga cukier = 100 nazwa = kasza jednostki = 6 – morvudd

回答

0

我找到了一個錯字在我的供應商檔案,也許這會爲別人有用:

selection = InsulinaContract.InsulinaEntry._ID + **"=?"**; 
selectionArgs = new String[] {String.valueOf(ContentUris.parseId(uri))}; 
return updateEntry(uri, values, selection, selectionArgs); 

我缺少「=?」在我的選擇聲明中。

相關問題