Что будет делать SQLiteCursor, если столбец пуст? - PullRequest
31 голосов
/ 13 октября 2011

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

Код будет

mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));

Я ожидал бы возможное нулевое значение, и это на самом деле желательно дляпричины - поле относится ко времени, когда вторая таблица была изменена, и первая таблица может быть заполнена раньше, чем вторая.К сожалению, в документации для Cursor говорится, что то, будет ли выброшено исключение, или будет возвращено значение ошибки, или другое поведение, оставлено на усмотрение реализации, и в документации SQLiteCursor НИЧЕГО не сказано.этот код делать, если поле пустое?Есть ли способ проверить это перед вызовом getInt ()?

Ответы [ 2 ]

55 голосов
/ 13 октября 2011

есть isNull() -метод, просто используйте if заранее, чтобы обнаружить нулевые значения.Помните: для методов, которые возвращают логическое значение с именем isX() вместо getX(), довольно часто, это может быть источником некоторой путаницы:)

6 голосов
/ 20 апреля 2014

По моему опыту, он возвращает 0. Если 0 не является возможным ответом, тогда вы можете просто проверить на 0. Если это возможный ответ, то вам нужно сделать так, как предложил pgsandstrom.

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