我已经实现了一个自定义的 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/