Android SQLite“随机”行似乎无法访问

时间:2013-06-06 06:46:38

标签: android sqlite android-sqlite delete-row

我有一个包含4列的数据库。除了随机行仍无法访问之外,一切正常。我似乎无法更新或删除它们。我使用了正确的代码:

删除代码:

boolean deleted=db.delete(TABLE_NAME, KEY_BLAH + "=" + alarm, null) > 0;

更新代码:

db.update(TABLE_NAME, args, KEY_BLAH + "=" + blah, null)

删除代码返回false,更新代码返回某些行的0,这些行是任意的。行被实现为ListViewListView元素的任何更改都应反映在SQLite Database中。大多数时候代码都有效。但它似乎不适用于随机点的随机行。我不认为这与SDK有关。我在ICSGBJB上尝试了它。

我还尝试了deleting行和inserting。显然这不起作用,因为我的delete语句似乎不起作用。这样做的逻辑是,如果update不可能,那么delete行和insert行具有相同的行ID和不同的数据。因此,deleted变量是if-block未执行的条件。

修改

示例:

1 1414 000 off

当我点击列表项中的几个按钮时。

它应该成为

1 1414 064 off

现在,除了我前面说过的一些随机行之外,大部分时间都可以使用。

1 个答案:

答案 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 })