2015-02-11 65 views
0

我想只更新地址和手機在sqlite中。我如何解決db.update?android基本sqlite更新聲明錯誤

我KEY_ID始終爲1,因爲我只是有數據庫一行

public void updatecontact(String address, String phone){ 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(KEY_ADDRESS, address); 
    values.put(KEY_PHONE, phone); 

    String userid="1"; 
    return db.update(TABLE_LOGIN, values, KEY_ID "= userid", null); 

} 

我應該在這個做什麼來糾正它inwhereClause和whereArgs?

return db.update(TABLE_LOGIN,values,whereClause,whereArgs);

是否可以使用KEY_EMAIL = KEY_EMAIL?

回答

2

更換

return db.update(TABLE_LOGIN, values, KEY_ID "= userid", null); 

的東西,如

return db.update(TABLE_LOGIN, values, KEY_ID + "= ?", new String[] { userid }); 

使用+連接字符串。

?是一個文字的佔位符,它們從whereArgs數組綁定。

userid SQL中沒有'single quotes'被視爲標識符(列名)而不是字符串文字。因此你會得到一個像「沒有這樣的列:userid」的錯誤。

此外,如果要從方法返回值,請將方法簽名中的void更改爲int

+0

但在這行有這個'多個標記問題 \t - 太虛方法不能返回值 \t - 令牌「」 =「」語法錯誤,刪除 \t這token' – nic 2015-02-11 09:20:07

+0

謝謝兄弟感謝幫助新手這裏 :) – nic 2015-02-11 09:27:00