2014-05-21 29 views
2

所以我有一個ListView和一個DatabaseHandler,我想刪除一個基於長按的ListView項目。它也應該從數據庫中刪除。SQLITE - 刪除第n行(安卓)

但是,當我刪除I​​D爲1的第一個項目時,ListView中新的第一個項目將是DataBase中ID爲2的項目。

ListView   Database 
1     1 
2     2 
3     3 

後刪除

ListView   Database 
1     2 
2     3 

我想刪除根據ListView的ID數據庫的條目。

delete from (select * from Student WHERE rownum = 2) 

但它給我一個錯誤...

我應該怎麼辦呢?謝謝!

+0

刪除後,只是重讀你的數據庫,並重新填寫您的ListView,清理之後。 –

+0

是的,但是如果我想刪除例如listview中新的第一項? – moritzg

+0

然後將id存儲在一個不可見的TextView中(不見了),填入自定義適配器 –

回答

4

您可以通過以下獲得(N + 1)個記錄:

SELECT * FROM Students LIMIT 1 OFFSET n; 

n是你從零開始後是該指數。所以,你可以通過選擇第二行:

SELECT * FROM Students LIMIT 1 OFFSET 1; 

您還可以通過刪除第二行:

DELETE FROM Students WHERE id in (SELECT id FROM Students LIMIT 1 OFFSET 1) 
+1

非常感謝! – moritzg