2013-04-09 3 views
0

Firefox SQLite Manager를 사용하여 SQLite 데이터베이스를 만들고 채 웁니다. 내 Android 프로젝트의 assets 폴더에 .sqlite 파일을 복사했습니다.Android : SQLite 데이터베이스 쿼리가 레코드를 반환하지 않습니다.

제 목표는이 레코드를 사용하여 회 전자를 채우는 것입니다. 데이터베이스를 쿼리 할 때 커서는 열은 표시하지만 레코드는 표시하지 않습니다.

DatabaseHandler 클래스는 SQLiteOpenHelper까지 확장되며 onCreate, onUpgradegetAllOffices에 대한 메소드를 포함합니다.

public List<String> getAllOffices(){ 
    List<String> offices = new ArrayList<String>(); 

    // Select All Query 
    String selectQuery = "SELECT OfficeId as _id, OfficeName FROM " + TABLE_OFFICE; 

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

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      offices.add(cursor.getString(1)); 
     } while (cursor.moveToNext()); 
    } 

    // closing connection 
    cursor.close(); 
    db.close(); 

    // returning offices 
    return offices; 
} 

기록이 반환되지 않는 이유에 대한 아이디어는 인정 될 것입니다.

+2

에 추가? –

답변

1

이 시도 :

기본적으로
public List<String> getAllOffices(){ 
    List<String> offices = new ArrayList<String>(); 

    // Select All Query 
    String selectQuery = "SELECT OfficeId as _id, OfficeName FROM " + TABLE_OFFICE; 

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

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      offices.add(cursor.getString(cursor.getColumnIndex("_id"))); 
     } while (cursor.moveToNext()); 
    } 

    // closing connection 
    cursor.close(); 
    db.close(); 

    // returning offices 
    return offices; 
} 

그냥 올바른 열 인덱스를 사용하고 있는지 확인합니다. 그렇지 않으면 eclipse를 사용하는 경우 cellobject 플러그인을 사용하여 데이터베이스를 탐색하고 테이블이 예상대로 채워 졌는지 확인하십시오. http://marketplace.eclipse.org/content/cellobject-sqlite-xml-browser#.UWOU5RaBD3g

+0

이 제안에 감사드립니다. SQLite Manager의 초기 데이터베이스에서 쿼리를 실행하면 레코드가 존재하지만 데이터베이스가 예상대로 채워지지 않은 것으로 나타났습니다. – marius

0

시도해보십시오. 유용 할 수도 있습니다.

public List<String> getAllOffices(){ 
    List<String> offices = new ArrayList<String>(); 

    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_OFFICE; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    System.out.println("CURSOR SIZE:"+cursor.getCount()) 
    // looping through all rows and adding to list 
    if(cursor.getCount()!=0){ 
     if (cursor.moveToFirst()) { 
      do { 
       System.out.println(cursor.getString(c.getColumnIndex("as per your db column name")); 
      } while (cursor.moveToNext()); 
     } 
    } 

    // closing connection 
    cursor.close(); 
    db.close(); 

    // returning offices 
    return offices; 
} 

당신이 바로 그때 얻는 경우 그냥 콘솔 출력을 볼 수있는 우선 당신이 그것을 제대로 설치했는지 확인 있습니까 당신의 office bean

관련 문제