2013-10-01 69 views
3

我正在開發Android應用程序,在這裏我要更新基於where子句中包括兩個值的一排一列一列。以下是我所嘗試過的。SQLite的更新基於WHERE子句的Android

public void setlocationsetcolumn(double lats , double longs, String setvalue) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 

    values.put(Loc_set, setvalue); 

    db.update(TABLE_LATLONG, values, " WHERE "+Loc_lati +" = " + lats+" AND "+Loc_longi+" = "+longs, null); 
} 

我婉更新Loc_set,基於&渴望值拉特。但我正在接近一個力量。我在這裏做錯了嗎?請幫助。謝謝!

+1

發佈您的日誌! –

+0

「強制關閉」表示存在未捕獲的異常。查看logcat獲取有用的堆棧跟蹤。在這種情況下,至少應該省略'WHERE'關鍵字。 – laalto

+0

你應該發佈日誌 – MariusBudin

回答

12

以下片段會幫助你。

String[] args = new String[]{lats, longs}; 
db.update(TABLE_LATLONG, values, "Loc_lati=? AND Loc_longi=?", args); 
+0

謝謝,它的工作原理! – Dave

2

刪除該WHERE字符串。試試這個:

db.update(TABLE_LATLONG, values, Loc_lati +" = " + lats+" AND "+Loc_longi+" = "+longs, null); 

但是,我不知道什麼是loc_lati和loc_longi,希望你的分貝列。

+2

你一定要用Vipul Shah給出的答案,使用參數。 – hordurh

1
String[] args = new String[]{lats, longs}; 
db.update(TABLE_LATLONG, values, "Loc_lati=? AND Loc_longi=?", args); 

你可以使用這個邏輯表的更新。