Курсор возвращает пустое значение при запросе определенных значений столбца, даже если строки существуют - PullRequest
1 голос
/ 12 июля 2011

Я реализовал пользовательский помощник базы данных SQLite.У меня есть таблица, содержащая смс сообщения.Я запрашиваю в этой таблице записи с определенного телефонного номера, например, так:

public Cursor getSmsForContact(String phoneNumber) throws SQLException {
    phoneNumber = PhoneNumberUtils.stripSeparators(phoneNumber);
    Cursor cursor =
     db.query(DATABASE_TABLE, new String[] {
            KEY_DATE,
            KEY_BODY,
            KEY_CONTACT,
            KEY_TYPE,
            KEY_ROWID,
            KEY_MESSAGE_STATE
    }, KEY_CONTACT + "=" + phoneNumber, null, null, null, null);

    return cursor;
}

Этот метод отлично работает для номеров, которые не имеют "+" спереди (указывает код страны).Тем не менее, он всегда возвращает пустой курсор, когда phoneNumber имеет "+" спереди.Я убедился, что метод PhoneNumberUtils.stripSeparators() не удаляет знак "+".Я также проверил, что в таблице есть строки, которые соответствуют номеру телефона, который запрашивается.Спасибо!

1 Ответ

1 голос
/ 12 июля 2011

Попробуйте

}, KEY_CONTACT + "= ?" , new String[] {phoneNumber}, null, null, null);

Номер телефона интерпретируется как число;Вы хотите, чтобы это интерпретировалось как строка

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