[英]Deleting row from android SQLite database corrupts entries after deleted row
大家好,我是android開發的新手,一直在嘗試學習如何在android中使用SQL。 我一直在從這里http://www.tutorialspoint.com/android/android_sqlite_database.htm使用示例代碼
除了刪除行功能,我已經能夠按照我想要的一切進行工作。 當我刪除一行時,其下面各行中的數據會損壞和/或與id列不同步。 在過去的兩天里,我一直在研究示例並進行仔細研究,但是找不到答案,因此希望你們中的一個能夠提供幫助。 以下是發生的情況的簡單示例。 讓我知道是否需要發布更多信息,非常感謝您的幫助。 問題圖
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。 然后繼續進行,教程要點就是一個很好的例子。
根據您的問題:刪除之前:
1-a
2-b
3-c
4-d
刪除第二行后,它應具有:
1-a
3-c
4-d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.