Получить содержимое первых трех строк базы данных Android с помощью курсора - PullRequest
0 голосов
/ 16 марта 2012

В настоящее время в моем коде я использую курсор для извлечения всей базы данных Мой код

public Cursor getAll() {
    return (getReadableDatabase().rawQuery(
            "SELECT _id, note, amt, dueDate FROM New", null));

}

Функция извлечения содержимого состоит в том, чтобы заполнить его в виде списка.

Теперь я хочу получить содержимое первых трех строк одной и той же базы данных, используя курсор для отображения в другом просмотре списка.

Нужна помощь, заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

Поскольку вы уже получили Cursor, чтобы получить первые три строки результата, вы делаете это:

Cursor cursor = getAll();
cursor.moveToFirst();
int count = 0;
while(!cursor.isAfterLast() && count < 3)
{
  // Grab your data here using cursor.getLong(0), cursor.getString(1) etc.
  // and store it an array.
  count++;
  cursor.moveToNext();
}
cursor.close();

Возможно, вы захотите ограничить результаты запроса максимум тремя, добавив оператор LIMIT 0,3 в ваш SQL. Получив массив из не более трех элементов, содержащих ваши записи, вы можете перейти к размещению их в другом ListView, на который вы ссылаетесь. Вы делаете это, добавляя их в исходный массив этого ListView. Затем вызовите метод notifyDataSetChanged адаптера ListView, чтобы он сам обновился.

0 голосов
/ 16 марта 2012

Таким образом, вы можете сделать это двумя способами:

  1. Создать отдельный выбор:

    SELECT * FROM Table_Name LIMIT 3;
    
  2. Выберите три строки из курсора:

    int n = 0;
    cursor.moveToFirst();
    while (!cur.isAfterLast() && n < 3) {
        // Use the data
        n++;
        cur.moveToNext();
    }
    cur.close();
    
0 голосов
/ 16 марта 2012

Правильный способ сделать это - ограничить число результатов тремя:

"SELECT _id, note, amt, dueDate FROM New ORDER BY _id LIMIT 3"

Тогда вы просто перебираете курсор (как обычно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...