游标在sqlite中返回null

游标在sqlite中返回null,sqlite,android-cursor,Sqlite,Android Cursor,我的方法getHighScore()中的游标返回空值,我不知道为什么。我用过 system.out.println(cursor.moveToFirst()); 而且是假的。当我在SQLiteman中运行查询时,它会返回一个结果 这是我的全班同学。我已经为这个包放了虚拟数据 public class DatabaseHandler extends SQLiteOpenHelper{ // Static Database Information private static final int

我的方法getHighScore()中的游标返回空值,我不知道为什么。我用过

system.out.println(cursor.moveToFirst());
而且是假的。当我在SQLiteman中运行查询时,它会返回一个结果

这是我的全班同学。我已经为这个包放了虚拟数据

public class DatabaseHandler extends SQLiteOpenHelper{

// Static Database Information
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "quiz_db.db";
public final static String DATABASE_PATH = "/data/data/com.example.app/databases/quiz_db.db";
private static final String QUESTION_TABLE = "Questions";
private static final String SCORE_TABLE = "Score";

// Questions Table Column Names
private static final String Q_ID = "id";
private static final String Q_QUESTION = "question";
private static final String Q_ANSWER1 = "answer_one";
private static final String Q_ANSWER2 = "answer_two";
private static final String Q_ANSWER3 = "answer_three";
private static final String Q_ANSWER4 = "answer_four";
private static final String Q_CORRECT = "correct_answer";


// Score Table Column Names
private static final String S_ID = "id";
private static final String S_SCORE = "score";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_QUESTION_TABLE = "CREATE TABLE " + QUESTION_TABLE + "("
            + Q_ID + " INTEGER PRIMARY KEY," + Q_QUESTION + " TEXT,"
            + Q_ANSWER1 + " TEXT" + Q_ANSWER2 + " TEXT" + Q_ANSWER3 + " TEXT" + Q_ANSWER4 + " TEXT" + Q_CORRECT + " TEXT" + 
            ")";

    String CREATE_SCORE_TABLE = "CREATE TABLE " + SCORE_TABLE + "("
            + S_ID + " INTEGER," + S_SCORE + " INTEGER"
            + ")";


    db.execSQL(CREATE_QUESTION_TABLE);
    db.execSQL(CREATE_SCORE_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + QUESTION_TABLE);

    db.execSQL("DROP TABLE IF EXISTS " + SCORE_TABLE);
    // Create tables again
    onCreate(db);
}

// Get High Score
public int getHighScore () {
    int score = 0;
    String query = "SELECT score FROM " + SCORE_TABLE + ";";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    if (cursor != null && cursor.moveToFirst()) {
         score = cursor.getInt(cursor.getColumnIndex("score"));
    }

    cursor.close();
    return score;

}

我的数据库位于“assets”文件夹中,文件名为“quick_db.db”

,因此您的分数表不包含任何行。当我在Sqliteman中运行相同的查询时,它会返回一行,这是我尝试获取的结果。因此,我的分数表确实包含一行。很可能您没有在同一数据库文件上运行查询。您没有使用资产文件夹中的数据库。好的,我如何在同一数据库文件上运行查询或将资产数据库复制到路径?