sqlite预定义数据库null

时间:2012-12-03 12:13:19

标签: android sqlite

我是Sqlite的初学者,很抱歉如果我犯了一些愚蠢的错误:D

我的预定义数据库中出现NULL错误:

NULL error

错误总是在我在新计算机/模拟器中启动我的应用时发生,因此我认为这与我的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

1 个答案:

答案 0 :(得分:1)

你的答案在这里: How to use an existing database with an Android application

将数据库复制到资产文件夹中,并使用上面链接中提供的代码。您也可以试用样品样品。