2017-04-23 60 views
-1

我對數據庫&嘗試根據區域提取值非常陌生。我的表已經有區域(draft_region_name)列。下面是我的代碼如何在sqlite中檢索結果

SQLiteDatabase db = this.getWritableDatabase(); 

    String where = ""; 
    for (int i = 0; i < names.size(); i++) { 
     where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + ""; 
     if (i != (names.size() - 1)) 
      where = where + " or "; 
    } 

    Cursor cursor = db.query(TABLE_DRAFT_TABLE, null, where, null, null, null, null); 

我得到這個厚望

​​

回答

1

你可能已經忘記了'爲sqlites串試試這個也是你的sqlite應該結束‘;’不應該它?:

for (int i = 0; i < names.size(); i++) { 
    where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'"; 
    if (i != (names.size() - 1)) 
     where = where + " or "; 
} 
where = where + ";" 
+0

這爲我工作 – VVB

1

where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + ""; 

編譯,作爲例外,說成這樣的說法:

SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD 

,如果你想檢查一個字符串這是不對的,你必須將搜索關鍵字設置爲引號。因此,這將是正確的查詢:

SELECT * FROM DraftTable WHERE draft_region_name = 'AHMEDABAD' 

爲了解決它只是包裝的那部分代碼在那裏您彙編where條款是這樣的:

where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'"; 
+0

但我可以有多個區域選擇哪些適用於條件爲 – VVB

+0

的列是。在這種情況下,子句看起來像:'SELECT * FROM DraftTable WHERE draft_region_name ='AHMEDABAD'或draft_region_name ='其他區域' – stamanuel