2011-11-16 23 views
1

我正在處理android應用程序中的sqlite數據庫。 要更新我使用SQLiteDatabase對象「更新」如何在更新方法中使用SQLite的「whereClause」

SQLiteDatabase.update(String table, ContentValues values, String whereClause, String[] whereArgs) 

但這裏混亂的方法分貝行,如何「whereClause」應該是什麼樣子? 假設我有這些更新值。

values.put("name", appInfo.getName()); 
values.put("package_name", appInfo.getPackageName()); 
values.put("version_name", appInfo.getVersionName()); 

我想更新package_mane列等於「com.mynamespace.db」的行。如何在這裏寫「WhereClause」?謝謝。

回答

4

whereClause應該是這樣的:從whereArgs

String whereClause = "package_mane = ?"; // package_name perhaps? 
String[] whereArgs = new String[]{"com.mynamespase.db"}; 

字符串用來在whereClause替代?

8
db.update("table", values, "package_name = ?", new String[]{"com.mynamespase.db"}); 

又如:

db.update("table", values, "package_name = ? and other_field = ?", new String[]{"com.mynamespase.db", "test"}); 
3

你應該使用這樣的:

SQLiteDatabase.update(table, "package_name=?", new String[] { "com.mynamespace.db" }); 

,並防止其他問題和緩存效率低下,如果你Concat的字符串。

2
db.update(TABLE_NAME, values, "package_name=com.mynamespase.db", null); 

// or 

String[] args = { "com.mynamespase.db" }; 
db.update(TABLE_NAME, values, "package_name=?", args);