2012-09-18 2 views
0

두 개의 열이있는 테이블을 만드는 데이터베이스 관리자 클래스가 있습니다. 첫 번째 열에 정수되고, 나는 목록으로 해당 열에서 모든 값을 반환하는 방법을 쓰기 위해 노력하고 있어요 :sqlite 데이터베이스에서 모든 ID를 얻는 방법

public List<Integer> getAllStyleIDs(){ 
     List<Integer> results = null; 
     SQLiteDatabase db = this.getReadableDatabase(); 
     // Select All Query 
     String selectQuery = "select * from " + DBConstants.allStyles; 

     Cursor cursor = db.rawQuery(selectQuery, null); 

     // looping through all rows and adding to list 
     if (cursor.moveToFirst()) { 
      do { 

       results.add(cursor.getInt(0)); 


      } while (cursor.moveToNext()); 
     } 
     cursor.close(); 
     db.close(); 

     return results; 
    } 

을하지만 난 널 포인트 예외

아이디어는 무엇입니까?

+1

당신이 게시 할 수있는 로그 캣 출력 :

이 같은 시도? – silentw

답변

3

목록이 results 인 경우 추가하려고합니다. 이것을 시도하십시오 :

List<Integer> results = new ArrayList<Integer>(); 
+0

고마워 .. 분명히 더 잠을 자야 해. – erik

1

첫 번째 사항 : 목록이 초기화되지 않았습니다. 두 번째 문제 : 원시 쿼리를 사용하지 않는 것이 좋습니다 : 오류가 발생하면

List<Integer> results = new ArrayList<Integer>(); 
    this.database = this.getReadableDatabase(); 

    String [] columns = {_ID}; // name of the column 

    Cursor cursor = this.database.query(COURSES_TABLE, columns, null, null, null, null, null); 

    int iId = cursor.getColumnIndex(_ID); 

    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) 
    { 
     Integer rowId = cursor.getInt(iName); 
     results.add(rowId); 
    } 

    cursor.close(); 
    this.database.close(); 

    return results; 
관련 문제