我在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”?感谢。
答案 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);