从 android SQLite 数据库中删除行会在删除行后损坏条目

Deleting row from android SQLite database corrupts entries after deleted row

大家好,我是 android 开发的新手,一直在努力学习如何将 SQL 与 android 结合使用。我一直在使用此处 http://www.tutorialspoint.com/android/android_sqlite_database.htm

中的示例代码

除了删除行功能外,我已经能够按照我想要的方式运行所有功能。当我删除一行时,它下面的行中的数据变得损坏 and/or 与 id 列不同步。在过去的两天里,我一直在查看示例并仔细查看,但就是找不到答案,所以我希望你们中的一个能提供帮助。下面是正在发生的事情的一个简单示例。如果我需要 post 更多信息,请告诉我,非常感谢任何帮助。Diagram of problem

public Integer deleteContact (Integer id)
{
   SQLiteDatabase db = this.getWritableDatabase();
  return db.delete("contacts",
           "id = ? ",
          new String[] { Integer.toString(id) });


}

图表的结果是正确的。代码也是正确的。

如果你有:

ID | Value
----------
1  | a
2  | b   <---- delete this
3  | c

结果将是:

ID | Value
----------
1  | a
3  | c

因此,id 为 3 的行仍然具有值 c。 如果您 运行 查询选择 ID 为 2 的行,应用程序可能会崩溃,因为返回的 Cursor 不指向行。 如果不处理这种情况,应用程序可能会崩溃。

我检查了你的图表,想告诉你首先你对第 2 行的删除操作也应该删除它的所有行值,甚至是 id。然后继续,Tutorial Points 有很好的例子。

根据您的问题: 删除前:

1-a

2-b

3-c

4-d

删除第二行后应该有:

1-a

3-c

4-d