簡體   English   中英

Android:SQLite數據庫查詢不返回任何記錄

[英]Android: SQLite database query not returning any records

我使用Firefox SQLite Manager創建並填充了SQLite數據庫。 我將.sqlite文件復制到了Android項目的資產文件夾中。

我的目的是使用此記錄來填充微調器。 當我查詢數據庫時,光標顯示列,但沒有記錄。

我的DatabaseHandler類擴展了SQLiteOpenHelper並包含onCreateonUpgradegetAllOffices

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; 
}   

為什么不返回記錄的任何想法將不勝感激。

嘗試這個:

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

請嘗試這樣做,可能對您有用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM