2010-04-07 4 views
2

나는 RC 자동차 용 안드로이드 애플리케이션을 작성하고있다. 그것은 SQLite 데이터베이스를 사용하고 자동차, 자동차 이름 및 기타 변수의 모델을 저장합니다.안드로이드 데이터베이스를 열로 필터링하는 방법

여기 내 코드입니다 :

public Cursor fetchAllNotes() { 
    return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, 
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE, 
    KEY_COMMENTS}, KEY_CARNAME + "=" + "'MTX-4'", null, null, null, null); 
} 

어떻게이 carname 열에서 이름이 자동차의 특정 모델이 레코드 만 표시 할 수 있습니까? 지금까지 나는 'MTX-4' 또는 다른 리터럴 문자열을 사용하여 결과를 필터링 할 수 있습니다. 그 문자열을 String carName 또는 뭔가 같은 문자열 변수로 대체 할 수 있어야합니다. 그래서 사용자 정의 carname을 기준으로 필터링 할 수 있습니다.

답변

8

'MTX-4'를 '?' 매개 변수 변수로. 그런 다음 selectionArgs 매개 변수 (예에서는 null)를 매개 변수 목록 (예 : 새 문자열 [] { "MTX-4"} 또는 새 문자열 [] {carName}

다음 스 니펫은 귀하와 동일합니다.

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, 
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE, KEY_COMMENTS}, KEY_CARNAME + "=" + "?", new String[]{"MTX-4"}, null, null, null); 
+3

아, 폭력 : p +1, 이것은 정확히 내가 쓰려고했던 것입니다. 사실, 한 가지 더 덧붙이겠습니다. 검색을위한 사용자 정의 문자열로 만들려면 "String carName"을 데이터베이스 쿼리의 인수로 추가 한 다음 Jim의'new String [] { "MTX-4"} "를'new String [] { carName}'. 이미 문자열 배열을 전달하고 있다면,'new String []'부분을 신경 쓰지 않아도됩니다. –

+0

짐 (Jim)과 스티브 (Steve), 귀하의 신속한 답변에 많은 감사드립니다. 그건 멋지게 해냈어! 그리고 과정에서, 당신은 선택 및 선택 항목에 대한 나의 이해를 도왔습니다. 다시 한 번 감사드립니다! 영국 Wilts에 간다면 맥주를 사 줄께! :) –

관련 문제