Android数据库(SQLite)从空表返回一个非空游标

时间:2011-01-23 08:08:39

标签: android sqlite

我使用SQLite数据库浏览器验证该表不包含任何行。我逐步完成了查询构建器代码以获取生成的查询并在SQLite Database Broswer中运行查询。查询返回零行。但是,Android的SQLiteQueryBuilder.query方法返回的游标在cursor.moveToFirst()调用时返回true并返回空值。

之前有人见过这样的事吗?

3 个答案:

答案 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')。