【发布时间】:2014-01-26 21:49:01
【问题描述】:
我只是在写一个代码 sn-p 但是它的行为很奇怪:
String sql = "SELECT _id,name,enabled FROM Reference";
Cursor c = mDatabase.rawQuery(sql, new String[] {});
if (c != null && c.getCount() > 0) {
return c;
}
return null;
逐行调试这段代码,我注意到 c 不为空。并且通常代码返回null。但是游标值不合逻辑,我的意思是选择查询必须返回一些行,但它不执行任何操作。所以我改变了这样的代码:
String sql = "SELECT _id,name,enabled FROM Reference";
Cursor c = mDatabase.rawQuery(sql, new String[] {});
if (c != null) {
return c;
}
return null;
再次跟踪这段代码,这次光标'c'不为空,但是sn-p返回空! 将整个 sn-p 更改为此,已解决的问题:
String sql = "SELECT _id,name,enabled FROM Reference";
Cursor c = mDatabase.rawQuery(sql, new String[] {});
if (c == null || c.getCount()<=0) {
return null;
}
return c;
在这种情况下,查询返回合理数量的行。我只是想知道第一个代码 sn-p 有什么问题!是关于使用 != null 还是其他东西?
请注意,在第一种情况下,游标计数不合理,与数据库选择结果不匹配。
【问题讨论】:
标签: android sqlite null operators