2012-12-28 58 views
0

所以,我的屏幕上有幾個編號的EditTexts。這些數據來自數據庫中的 信息。但我的onLongClickListener()是刪除一個特定的EditText。發生這種情況並且數據庫中也反映了這一點。然而,條目中的數字將被更新。刪除一行後重構數據庫

>Eg:- 
>I have 4 EditTexts.... 
>I delete the second one.... 
>The database is numbered 1,3,4... 
>I now want it to be renumbered as 1,2,3. 

What logic may I use? 
+0

使用MS SQL Server 2005+可以使用'SET Num = ROW_NUMBER OVER(ORDER BY NUM)'來實現這一點。我從來沒有使用過sqllite,所以不知道它是否被支持。希望這會給你一些研究? [這是鏈接](http://msdn.microsoft.com/en-us/library/ms186734.aspx) –

回答

1

你可以跟蹤被刪除的號碼,然後執行:

update t 
    set num = num-1 
    where num > <val deleted> 

你必須建立與剛剛刪除值的查詢。這確實會導致更新許多行,所以它可能不是一個好主意。

+0

邏輯很酷。 SQLite查詢不起作用。 –

+0

檢查 [this](http://stackoverflow.com/questions/14097751/convert-a-query-from-rawquery-to-update)和 [this](http://stackoverflow.com/questions/ 14099756 /遞減-a值 - 不工作) –