2011-04-24 139 views
1
SELECT * FROM <TableName> WHERE <attribute(id)> IN <ArrayList type> 

檢索一組行的,但那裏有一個錯誤從SQLite數據庫

04-24 21:18:41.748: ERROR /錯誤(29495): android.database.sqlite.SQLiteException : 沒有這樣的表:1:,在編譯: SELECT * FROM主WHERE ID。在[1]

基本上我想和屬性(ID),其是存在於一個ArrayList選擇那些行... 但ArrayList中的格式不一樣的一個REQD這種類型的查詢(我猜) 的,我認爲這是什麼原因,它不能正確

幹活如果我查詢它:

SELECT * FROM <TableName> WHERE <attribute(id)> IN <Integer> 

它顯示我正確的結果......但OBV只選擇特定的ID的行...

注:ArrayList中被替換整數...(這是該數據類型我的屬性( ID))

在此先感謝:)

+0

我沒有看到任何問題(作爲僞代碼),但你可以發佈一些關於你如何在Android中使用查詢的源代碼。另請注意,Database-Query通常返回一個Cursor,而不是一個ArrayList。 – 2011-04-24 18:53:23

回答

1

有沒有這樣的事情IN <ArrayList type>

您需要使用JAVA代碼自己計算枚舉字符串。

SELECT * FROM <TableName> WHERE _id IN ('1','2','3','4','5') 

同時請注意,在Android上,建議主鍵是_id有下劃線。

+0

k 那麼我該如何去abt呢? 因爲我不知道在arraylist中有多少元素... – Sid 2011-04-25 07:33:45

+0

您只需將元素連接多少次,然後根據需要構造一個字符串。你需要建立字符串! – Pentium10 2011-04-25 08:15:01

0

當應用程序的工作,我寧願讓我用含有它所持有像元素List

List<ElementType> = ... 

通過這樣做,你可以簡單地詢問每一個元素爲他們的ID。 Pentium10的解決方案將完成這項工作,但我更喜歡這樣做,因爲它提供了更大的靈活性。