2017-04-23 6 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

このexpectionを取得していますがある "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

関連する問題