0
我在sqlite的初學者,很抱歉,如果我做了一些愚蠢的錯誤:dsqlite的預定義的數據庫空
我在我的預定義的數據庫中的NULL錯誤:
這錯誤總是發生在我啓動我的應用程序在新電腦/模擬器,所以我認爲這與我的onCreate
方法有關。但是,onCreate
應該不需要,因爲我使用預定義的數據庫。
這是我的數據庫類:
private static String DATABASE_NAME = "ALGOLICIOUS_DB";
private static int DATABASE_VERSION = 1;
private static String TABLE_NAME = "msQuiz";
private static String TABLE_HIGHSCORE = "msHighScore";
private Context context;
private SQLiteDatabase db;
String queryCreate, queryUpdate, queryDelete, querySelect, queryInsert;
Cursor cursor;
public AlgoliciousDB(Context context) {
this.context = context;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
}
public List<String> getQuestion(int chapter) {
List<String> questionList = new ArrayList<String>();
String result = "";
querySelect = "SELECT * FROM " + TABLE_NAME + " WHERE question_chapter = " + chapter;
try {
cursor = this.db.rawQuery(querySelect, null);
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()){
result += cursor.getString(1) + "%" + cursor.getString(2) + "%" + cursor.getString(3) + "%" + cursor.getString(4) + "%" + cursor.getString(5);
questionList.add(result);
result = "";
}
return questionList;
} catch (Exception e) {
return null;
}
}
public int getHighScore(int chapter) {
querySelect = "SELECT highscore FROM " + TABLE_HIGHSCORE + " WHERE highscore_id = " + chapter;
int temp = 0;
try {
cursor = this.db.rawQuery(querySelect, null);
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()){
temp = Integer.parseInt(cursor.getString(0));
}
return temp;
} catch (Exception e) {
return -1;
}
}
public void Close() {
db.close();
}
class OpenHelper extends SQLiteOpenHelper {
public OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
任何幫助將不勝感激,謝謝:d
你的數據庫存儲在哪裏? –
在默認路徑(/ data/data)中:D 謝謝 –
當你捕獲一個異常時,記錄它,不要簡單的返回一個默認值。這應該可以幫助你在onCreate中找到問題 – njzk2