Курсор возвращает значение -1, но элементы присутствуют?

Я использую базу данных SQLite для хранения и извлечения данных моего приложения, а также что проверять на наличие повторяющихся записей. I попытаться получить все записи, в которых совпадают заголовки, как таковые:

Cursor c = mDb.query(DatabaseHelper.GOALS_TABLE_NAME, 
                     new String[] { Goals.GOAL_ID, Goals.TITLE }, 
                     Goals.TITLE + "='" + title + "'", null, null, null, 
                     null, null);

где title - это тот, с которым нужно сравнивать.

Этот запрос выполняется, но курсор дает счетчик -1. Вызов без предложения where также возвращает -1, но я знаю, что данные присутствуют, так как я могу привязать к ним представление списка.

Что-то мне не хватает, нужно ли мне каким-то образом заполнить курсор?

Заранее спасибо,

] Венату

6
задан Brian Campbell 25 August 2010 в 20:32
поделиться

1 ответ

При выполнении query() немедленно возвращается Курсор. Сам запрос еще не запущен. Только когда вы делаете что-то, что требует загрузки данных, запрос будет выполнен. Попробуйте сначала выполнить другой метод (например, moveToFirst()) перед вызовом getCount() и посмотрите, изменит ли это ситуацию.

15
ответ дан 8 December 2019 в 15:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: