我想在一個表中更新行對我的SQLite我第一次嘗試以如下更新:不能更新的android源碼行
public void updateMasterSPAJ(
String nama_pp,
String gelar_pp,
String ibu_pp,
String hubungan_pp,
int spinner_hubungan_pp
) {
ContentValues cv=new ContentValues();
cv.put("nama_pp", nama_pp);
cv.put("gelar_pp", gelar_pp);
cv.put("ibu_pp", ibu_pp);
cv.put("hubungan_pp", hubungan_pp);
cv.put("spinner_hubungan_pp", spinner_hubungan_pp);
getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID=SPAJ_ID", null);
}
但是這個代碼將更新所有的行,而不是特定行,所以我改變我的代碼在這一行getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID=SPAJ_ID", null);
到
`getWritableDatabase().update("pemegang_polis", cv, "pemegang_polis.SPAJ_ID=master_spaj.SPAJ_ID", null);`
我得到的錯誤,這是我的logcat說:
android.database.sqlite.SQLiteException: no such column: master_spaj.SPAJ_ID (code 1): , while compiling: UPDATE pemegang_polis SET spinner_hubungan_pp=?,ibu_pp=?,hubungan_pp=?,nama_pp=?,gelar_pp=? WHERE pemegang_polis.SPAJ_ID=master_spaj.SPAJ_ID
然後我改變該行成:
a=Menu_SPPAJ.getX();
getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID="+ a, null);
因爲從pemegang_polis
從SPAJ_ID
值從Menu_SPPAJ.getX()
類得到。我再次遇到錯誤,這是我的logcat說:
android.database.sqlite.SQLiteException: near ".01": syntax error (code 1): , while compiling: UPDATE pemegang_polis SET spinner_hubungan_pp=?,ibu_pp=?,hubungan_pp=?,nama_pp=?,gelar_pp=? WHERE SPAJ_ID=AndroidESPAJ2014.01.12.04.20.04.568
我不知道哪裏是我的錯,我覺得一切都很好,是沒有辦法,我錯過了什麼或者別的什麼嗎?我希望有人瞭解我的問題,可以幫助我解決我的問題,非常感謝。
你回答比我好。 +1爲您的準備陳述的答案。 – elbuild
@laalto我試過你的代碼,並沒有更新過的行。 –
@AoyamaNanami然後,你必須弄清楚你需要在數據庫中使用你的數據的情況。我們所能使用的只是您問題中提供的信息。 – laalto