我想从SQLite数据库中的表中检索字段。我通过使用sqlite3命令验证了数据在表中,并使用调试器针对在“数据库”对象内引用的数据库运行查询,该查询是使用Cursor获得的。SQLite光标永远不会有字段
这里是我的代码:
openForRead();
Cursor cursor = database.query(DATABASE_TABLE,
null, // All columns
null,
null,
null,
null,
"((" + latitude + " - " + KEY_LAT + ") * (" + latitude + " - " + KEY_LAT + ") + ("
+ longitude + " - " + KEY_LONG + ") * (" + longitude + " - "+ KEY_LONG + "))",
"10"
);
close();
此代码生成一个SQL查询,如:
SELECT * FROM airport ORDER BY ((35.9314068 - latitude) * (35.9314068 - latitude) + (-115.09285366 - longitude) * (-115.09285366 - longitude)) LIMIT 10
我只有5个机场中的表,现在,所以我不打算在一些内存限制或类似的东西。
当我在sqlite3中运行该查询时,我得到了数据。
为什么我的光标总是空的?它是空的,即使我把一切都为空(这应该只是返回的一切..)
给予更多的信息肯定会有帮助,你可以粘贴你的代码片段,至少我们知道哪一部分是空的。你的意思是cursor.size()== 0?或者cursor == null?等等 – Jianhong
光标大小为0. –
这里是我的看法: 1)如果有错误,请分享错误日志。 2)确认你的查询语句是可运行的/返回结果在sqlite本身。你可以提取.db文件(根设备)并在sqlite浏览器中打开它。 3)确保你真的在数据库中有数据,尝试从机场限制10中选择*,看看你的cursor.size()是否已经改变。 – Jianhong