SQLite / Android:查询不返回结果?

时间:2014-08-16 20:46:39

标签: android sqlite cursor

以下方法是否有错误?

它应该返回DB的任何行,其中status = false。

有问题的方法:

public Cursor getSinlgeEntry() {

                String[] params = new String[] { String.valueOf(false) };
                Cursor cursor = db.rawQuery("SELECT * FROM scores WHERE status=?",
                        params);

                if (cursor.getCount() < 1) // UserName Not Exist
                {
                    cursor.close();
                    return null;
                }

                return cursor;
            }

数据库结构:

// Database Version
    private static final int DATABASE_VERSION = 13;

    // Database Name
    private final static String DATABASE_NAME = "MeditationDatabase";

    // Contacts table name
    private static final String TABLE_SCORE = "scores";

    // Contacts Table Columns names
    private static final String COL_SESSION = "sessionid";
    private static final String COL_GAMETITLE = "game";
    private static final String COL_NAME = "name";
    private static final String COL_MED = "avgmeditation";
    private static final String COL_MAX = "maxmeditation";
    private static final String COL_AVGATT = "avgattention";
    private static final String COL_MAXATT = "maxattention";
    private static final String COL_SCORE = "score";
    private static final String COL_DATE = "date";
    private static final String COL_STATUS = "status";

    /**
     * Constructor
     * 
     * @param context
     */
    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }


    /**
     * Method that creates the database
     */
    @Override
    public void onCreate(SQLiteDatabase db) {

        //VERY IMPORTANT: ALWAYS CHECK THAT THERE ARE SPACES AND COMMAS IN CORRECT PLACE IN CODE BELOW:

        String CREATE_TABLE_SCORE = "CREATE TABLE " + TABLE_SCORE + "(" + COL_SESSION
                + " STRING PRIMARY KEY, " + COL_GAMETITLE + " STRING, "  + COL_NAME + " STRING, " + COL_MED + " INTEGER, "
                 + COL_MAX + " INTEGER, " + COL_AVGATT + " INTEGER, " + COL_MAXATT + " INTEGER, "  + COL_SCORE +  " INTEGER, " + COL_DATE + " STRING, " 
        + COL_STATUS + " STRING " + ")";
        db.execSQL(CREATE_TABLE_SCORE);

    }

我确信数据库中填充的行为&#34; false&#34;作为状态。这就是为什么我对这个不产生结果的查询感到困惑。

0 个答案:

没有答案