如何在更新方法中使用SQLite的“whereClause”

时间:2011-11-16 20:05:01

标签: android database sqlite

我在Android应用程序中处理sqlite数据库。 要更新db中的行,我使用SQLiteDatabase对象的方法“update”

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 个答案:

答案 0 :(得分: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"});

答案 1 :(得分:4)

whereClause应该是这样的:

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

来自whereArgs的字符串用于替换?中的whereClause

答案 2 :(得分:3)

您应该像这样使用它:

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

并在串联字符串时防止其他问题和缓存效率低下。

答案 3 :(得分: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);