[英]Android: SQLite database query not returning any records
我使用Firefox SQLite Manager創建並填充了SQLite數據庫。 我將.sqlite文件復制到了Android項目的資產文件夾中。
我的目的是使用此記錄來填充微調器。 當我查詢數據庫時,光標顯示列,但沒有記錄。
我的DatabaseHandler
類擴展了SQLiteOpenHelper
並包含onCreate
, onUpgrade
和getAllOffices
。
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.