简单查询SQLite android

时间:2016-07-01 08:11:26

标签: android sqlite

我创建了一个包含3列表的数据库。 [ID Date FCode ZCode]。

    // Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_CODES_TABLE = "CREATE TABLE " + TABLE_NAME + "("
            + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + KEY_DATE + " TEXT,"
            + KEY_FCODE + " TEXT,"
            + KEY_ZCODE + " TEXT" + ")";
    db.execSQL(CREATE_CODES_TABLE);
}

我已经设法与SQLite数据库进行通信,但是我在从数据库返回一些值时遇到了问题。更确切地说,我在数据库中插入一些信息,如:

    db.addSQLinfo(new SQLCodes("01-07-2016", "100", "200"));
    db.addSQLinfo(new SQLCodes("02-07-2016", "101", "201"));
    db.addSQLinfo(new SQLCodes("03-07-2016", "102", "202"));
    db.addSQLinfo(new SQLCodes("04-07-2016", "103", "203"));
    db.addSQLinfo(new SQLCodes("05-07-2016", "104", "204"));
    db.addSQLinfo(new SQLCodes("06-07-2016", "105", "205"));
    db.addSQLinfo(new SQLCodes("07-07-2016", "106", "206"));

以后我正在使用此查询来检索数据。我的目标是根据我设置的日期返回所有值。所以例如,如果我执行这个:

        SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(
            TABLE_NAME, new String[]{KEY_ID, KEY_DATE, KEY_FCODE, KEY_ZCODE},
            "05-07-2016", null, null, null, null);

    if (cursor != null)
        cursor.moveToNext();

    String[] infos = {
            cursor.getString(0),   // return KEY_ID
            cursor.getString(1),   // return KEY_DATE
            cursor.getString(2),   // return KEY_FCODE
            cursor.getString(3)    // return KEY_ZCODE
    };

infos String []数组总是有[1,01-07-2016,100,200],无论我在db.query中设置的日期如何。我尝试了其他几种Query方法但没有结果。

1 个答案:

答案 0 :(得分:2)

我认为你错过了一个参数。

第3个参数是您要检查的列名? 第四个你要检查的价值。

应该是:

Cursor cursor = db.query(
        TABLE_NAME, new String[]{KEY_ID, KEY_DATE, KEY_FCODE, KEY_ZCODE},
        KEY_DATE + "= ?", new String[] {"05-07-2016"}, null, null, null);