大家好我是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) });
}
答案 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