0

我有一个有 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 无关。我试过了ICSGBJB

我也试过deleting行和inserting它。显然这行不通,因为我的delete陈述似乎行不通。这样做的逻辑是,如果update不可能,它将具有相同行 ID 和不同数据delete的行和行。insert因此,deleted变量是if-block未执行的条件。

编辑

例子:

1 1414 000 off

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

它应该成为

1 1414 064 off

现在,除了我之前说的一些随机行之外,这在大多数情况下都有效。

4

1 回答 1

1

如果您(间接)执行如下 SQL 语句:

UPDATE MyTable SET x = '064' WHERE blah = 1414

然后将blah列中的值与数字1414 进行比较。

在 SQL 语句中使用字符串时,应始终使用参数来避免这样的格式问题(以及SQL 注入攻击):

db.update(TABLE_NAME, args, KEY_BLAH + "= ?", new String[] { blah })
于 2013-06-06T11:09:28.880 回答