在阅读sqllite数据库时遇到问题

时间:2016-06-21 13:45:42

标签: android sqlite

我在外部驱动器中使用Singleton Approach创建了一个数据库,当我为DatabaseHelper创建了一个访问某些方法的对象(例如checkMISSetting)时,我遇到了一个问题。

我还附上了我的代码段:

我在创建数据库的处理程序类:

 em++ reset_if_true.cpp -O3 -std=c++14 -o reset_if_true.js
 node reset_if_true.js

调用处理程序方法

private DatabaseHandler(Context context) {

    super(context, context.getExternalFilesDir(null).getAbsolutePath()
            + "/" + "Android/MobInvSuit" + "/" + DATABASE_NAME, null,
            DATABASE_VERSION);

}

public static synchronized DatabaseHandler getInstance(Context context) {
        if (sInstance == null) {
            sInstance = new DatabaseHandler(context.getApplicationContext());
        }
        return sInstance;
    }

我收到错误的方法

    DatabaseHandler handler=DatabaseHandler.getInstance(this);

    boolean check = handler.checkMISSetting();//Line number 129

    handler.close();

在这个方法中,我在执行getIadableDatabase()时遇到问题,我在这里附上:

public boolean checkMISSetting() {
        boolean flag = false;
        SQLiteDatabase db = getReadableDatabase();
        String q = "SELECT COUNT(*) FROM " + DatabaseHandler.TABLE_SETTINGS;

        int numRows = (int) DatabaseUtils.longForQuery(db, q, null);

        if (numRows > 0) {
            flag = true;
            return flag;
        } else {
            return flag;
        }

    }

1 个答案:

答案 0 :(得分:2)

试试这个

替换constructor班级DatabaseHandler

private DatabaseHandler(Context context) {

    super(context,Environment.getExternalStorageDirectory()+ "/" + "Android/MobInvSuit" + "/" + DATABASE_NAME, null,DATABASE_VERSION);

}