我有一个包含4列的数据库。除了随机行仍无法访问之外,一切正常。我似乎无法更新或删除它们。我使用了正确的代码:
删除代码:
boolean deleted=db.delete(TABLE_NAME, KEY_BLAH + "=" + alarm, null) > 0;
更新代码:
db.update(TABLE_NAME, args, KEY_BLAH + "=" + blah, null)
删除代码返回false
,更新代码返回某些行的0
,这些行是任意的。行被实现为ListView
。 ListView
元素的任何更改都应反映在SQLite Database
中。大多数时候代码都有效。但它似乎不适用于随机点的随机行。我不认为这与SDK有关。我在ICS
,GB
和JB
上尝试了它。
我还尝试了deleting
行和inserting
。显然这不起作用,因为我的delete
语句似乎不起作用。这样做的逻辑是,如果update
不可能,那么delete
行和insert
行具有相同的行ID和不同的数据。因此,deleted
变量是if-block
未执行的条件。
修改
示例:
1 1414 000 off
当我点击列表项中的几个按钮时。
它应该成为
1 1414 064 off
现在,除了我前面说过的一些随机行之外,大部分时间都可以使用。
答案 0 :(得分:1)
如果您(间接)执行如下的SQL语句:
UPDATE MyTable SET x = '064' WHERE blah = 1414
然后将blah
列中的值与数字 1414进行比较。
在SQL语句中使用字符串时,应始终使用参数来避免格式化这样的问题(以及SQL injection attacks):
db.update(TABLE_NAME, args, KEY_BLAH + "= ?", new String[] { blah })