2011-06-17 54 views
1

我正在學習Android開發。我有一個名稱和數量的IOU表。因此,多次進入數據庫表後,你會有這樣的事情:如何從數據庫中提取數據並將它們存儲到Android中的數組中?

name1 50 
name2 25 
name1 10 
name3 60 

......

我的問題是,什麼是從表中拉項目的最佳途徑並在Adroid應用程序中將它們排列爲一個數組。

例如,Array1 [] name1 = [50,10,...]其中50和10是與數據庫中name1相關的數量。

我不能只使用SELECT * FROM table WHERE name = name1,因爲名稱會改變,並且會增加。我聽到這個問題: How to store arrays in a database? 動態生成表不是一個好主意。

回答

2

我想你想查詢這樣的:

SELECT * FROM table ORDER BY name 

SELECT * FROM table ORDER BY amount 

也就是說,如果你想所有的行,你並不需要一個WHERE子句。 ORDER BY子句可以爲你排序。

然而:你確定你需要將所有的數據拉入一個數組 - 特別是在數據庫能做到這一點,你需要排序?另一種方法是打開遊標,然後做一次一行所需的處理。

編輯:另一個例子(根據您的意見,我沒有測試過這一點):

SELECT name, SUM(amount) FROM table GROUP BY name ORDER BY name 

會給你一個行對數據庫中的每一個獨特的名字,每個量相關的總和與該用戶。對於上面發佈的示例,這將導致以下行:

name1 60 // The sum of the two rows that have name="name1" 
name2 25 
name3 60 
+0

感謝您的輸入。你可以擴大一點光標嗎?例如,如果我通過名稱對數據庫進行排序,並且name1有100個條目,總計爲100美元。我可以使用遊標,處理每一行,累加金額(應該總計爲100)並將其顯示給用戶?每次應用程序啓動時,它都會運行此查詢?我將需要爲所有「名稱」這樣做,這意味着我必須每次解析整個數據庫行,並提供名稱1 - totalAmount,name2 - totalAmount的列表... ... – okysabeni

+1

@Yko:SQLite可以爲您做總結太;看我的編輯。你可以確定你的程序在啓動時執行這個查詢。有關更多詳細信息,我建議您查看niky建議的教程(http://www.screaming-penguin.com/node/7742)或此教程:http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html,作爲以及Android開發者教程。 –

+0

令人驚歎!非常感謝。作品完美無瑕。 – okysabeni

相關問題