在我的应用程序中,我正在使用sqlite数据库 - 我遇到了一个奇怪的问题.
我有一个看起来像这样的表:
_id field1 field2 status
--- ------ ------ ------
1 value value ...
2 value value ...
...
Run Code Online (Sandbox Code Playgroud)
在一个地方,我需要更新一些行以将它们设置为另一个状态,所以我正在尝试
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("status", STATUS_SENT);
Set<Integer> ids = datasource.getCompletedIds();
String idparam = TextUtils.join(",", ids);
int cnt = db.update(TABLE_ORDERS, cv, "_id in (?)", new String[] { idparam });
Log.d("db", "updated " + cnt + " rows");
db.close();
Run Code Online (Sandbox Code Playgroud)
然而,没有任何东西得到更新 - 并db.update返回0.我错过了什么?
我不乐意推荐不使用参数,但在这种情况下,它实际上比格式化所有这些?标记更简单(并且使用普通整数,同样安全):
db.update(TABLE_ORDERS, cv, "_id IN (" + idparam + ")", null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |