2017-04-23 2 views
-1

& 지역을 기반으로 값을 가져 오기 위해 데이터베이스가 새로 작성되었습니다. 내 테이블에 이미 region (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); 

나는 당신이 잊어 버린 수

android.database.sqlite.SQLiteException: no such column: AHMEDABAD (code 1): , while compiling: SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD 

답변

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

관련 문제