此查询无法更新(更新为0):
int updated = db.update(TABLE_NAME, values,
COLUMN_NAME_ACCOUNT_ID + "= ? AND " + COLUMN_NAME_TOPIC + "= ?",
new String[] { String.valueOf(id), name });
但这很好用,更新= 1:
int updated = db.update(TABLE_NAME, values,
COLUMN_NAME_ACCOUNT_ID + "=" + id +
" AND " + COLUMN_NAME_TOPIC + "='" + name + "'",
null);
唯一的区别是如何构造WHERE - 显式或通过参数。发生了什么事?
SQLite 3.8.10.2有货Android模拟器。
答案 0 :(得分:0)
account_id
列包含数字。与字符串(String.valueOf(id)
)的比较永远不会成功。
Android数据库API仅支持字符串参数,因此您必须将ID直接插入字符串:
int updated = db.update(TABLE_NAME, values,
COLUMN_NAME_ACCOUNT_ID + "=" + id + " AND " + COLUMN_NAME_TOPIC + "= ?",
new String[] { name });