我使用SQLite数据库浏览器验证该表不包含任何行。我逐步完成了查询构建器代码以获取生成的查询并在SQLite Database Broswer中运行查询。查询返回零行。但是,Android的SQLiteQueryBuilder.query方法返回的游标在cursor.moveToFirst()调用时返回true并返回空值。
之前有人见过这样的事吗?
答案 0 :(得分:4)
好的:我认为这是因为我在查询中使用MAX聚合函数。这可能是一个错误,可能是?我现在使用带有限制子句的排序而不是MAX并且可以使用。
答案 1 :(得分:0)
我认为你应该这样做:
if (c.getCount()>0) {
c.moveToFirst();
答案 2 :(得分:0)
moveToFirst
实际上是moveToPosition(0)
。 moveToPosition
是AbstractCursor中定义的最终方法。查看代码,您可以看到结果部分取决于getCount
。似乎在你的情况下getCount返回一个非零值。
查看'_id'列的值是什么,并尝试删除它。或者,尝试在重新创建数据库之后调用该代码(调用'drop table'然后'create table')。