删除android SQLite数据库中的行会在删除行后破坏条目

时间:2015-11-28 16:11:43

标签: java android android-sqlite

大家好我是Android开发的新手,并且一直在努力学习如何在Android上使用SQL。我一直在使用这里的示例代码http://www.tutorialspoint.com/android/android_sqlite_database.htm

除了删除行功能之外,我已经能够像我想要的那样工作。当我删除一行时,它下面的行中的数据会损坏和/或与id列不同步。过去两天我一直在查看示例并调整它,但是找不到答案,所以我希望你们中的一个可以提供帮助。下面是一个简单的例子。如果我需要发布任何更多信息,请告诉我,非常感谢任何帮助。Diagram of problem

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


}

2 个答案:

答案 0 :(得分:0)

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

如果你有:

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

结果将是:

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

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

答案 1 :(得分:0)

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

根据您的问题: 删除前:

1-a

2-b

3-c

4-d

删除第2行后,应该有:

1-a

3-c

4-d