android - 查询特定列值时游标返回空,即使行存在

标签 android database sqlite

我已经实现了一个自定义的 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() 方法不会删除“+”号。我还验证了表中存在与正在查询的电话号码相匹配的行。 谢谢!

最佳答案

尝试

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

电话号码被解释为数字;你希望它被解释为一个字符串

关于android - 查询特定列值时游标返回空,即使行存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657157/

相关文章:

mysql - 学习存储过程,简单查询(IN ... OUT ...)

iphone - 使用 SQLite3 API 时 Xcode 内存泄漏

database - 什么是数据库文件系统?

php - 按日期分组观看电影

sqlite - 如何使用 Diesel 将 i64 与 Insertable 结合使用

sqlite 中的 django.db.utils.NotSupportedError 为什么在 sqlite 中不受支持

android - Android支持库版本冲突

Android:拦截 Intent 以我的 Activity 附加到开启者应用程序结束

android - 如何在android中跟踪下载

android - 任何用于android SDK的pdf417库?