Android SQLitedatabase

时间:2015-03-28 19:27:45

标签: android sqlite cursor

为什么我们必须转到下面代码中的第一项?我认为光标只包含一行,因为rowId是主键

    // Fetch single reminder
@SuppressLint("NewApi")
public Cursor fetchReminder(long rowId) throws SQLException {
    Cursor myCursor = db.query(true, DATABASE_TABLE, new String[] {
            KEY_ROW_ID, KEY_TITLE, KEY_BODY, KEY_DATE_TIME }, KEY_ROW_ID
            + "=" + rowId, null, null, null, null, null, null);
    if (myCursor != null) {
        myCursor.moveToFirst();
    }
    return myCursor;
}

1 个答案:

答案 0 :(得分:0)

只有一个Cursor类。它不知道它有多少行。 Query不会为查询单行或多行创建不同类型的游标。你应该打电话:

Curcor c = db.query(...);
try {
    if (c.moveToFirst()) { // we only have 1 result. 
                           //Otherwise we would iterate by
                           //(while(c.moveToNext()){...}
        String value = c.getString(0);
    }
} finally {
    c.close();
}