我已經使用GUI創建了一個包含1650條記錄的數據庫。Android的SQLite的rowcount總是零?
我想查詢這個數據庫,但它總是什麼都沒有返回。我試着寫一個簡單的getrowcount()
方法來查看我是否有任何東西,但總是返回零。如果有人能幫助指出發生了什麼,我必須在這裏忽略一些明顯的東西。
在我的主要app.java
:
db = new DbHandler(this);
String sIcao1 = "ROW COUNT = " + String.valueOf(db.getRowCount());
在我dbhandler.java
:
package com.jammo.mywidget4;
<snip - standard includes>
public class DbHandler extends SQLiteOpenHelper {
private static SQLiteDatabase db;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "airports";
private static final String TABLE_AIRPORTS = "airports";
public DbHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db = this.getWritableDatabase();
}
int getRowCount() {
int nCount = -1;
//SQLiteDatabase db = this.getReadableDatabase();
Cursor cur = db.rawQuery("SELECT * FROM airports", null);
nCount = cur.getCount();
if (cur != null) {
//cur.moveToFirst();
//nCount = cur.getInt(0);
//if (cur.getInt (0) == 0) {
//}
}
return nCount;
}
}
在GUI(SQLite的DB瀏覽器)我做一個簡單的
select * from airports
.. 。我得到了全部行數。當我調試Java時,遊標不會返回任何內容。
此外,由GUI創建的數據庫位於myapp/assets/airports.db
中。
任何想法?
我建議使用[SQLiteAssetHelper(https://github.com/jgilfelt/android-sqlite-asset-helper)庫。它具有將數據庫從'/ assets'移動到'/ databases'的API,因此您不必「重新發明輪子」。 – Sam 2013-03-04 21:04:53