我正在创建一个我需要存储每天数据的应用程序,如果我可以轻松过滤它会很有帮助,所以我决定学习SQLite数据库,找到教程(实际上有几个),然后跟着它结尾总是得到相同的结果 - 空光标。
enter public Day getDay(int year, int month, int day) {
Day ret = null;
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT '*' FROM '" + TABLE_DAYS + "'", null);
Log.d("DATA", "entries found: " + c.getCount());
c.close();
db.close();
return ret;
}
插入新行的方法似乎是有效的,因为它返回了预期的数字,但即使之后调用它,它也会返回空的Cursor。我已经阅读了很多教程和SO帖子而没有找到修复。 我也试过metod .query(...)同样的结果。
答案 0 :(得分:1)
为了避免将来出现语法错误,可能需要使用query()
方法代替rawQuery()
。通过返回所有行的数据,以下内容将与rawQuery()
实现相同的结果。
Cursor c = db.query(TABLE_DAYS, null, null, null, null, null, null);
c.getCount();
答案 1 :(得分:0)
尝试从SELECT * FROM
答案 2 :(得分:0)
使用db.rawQuery("SELECT * FROM " + TABLE_DAYS + "", null);
答案 3 :(得分:0)
替换
staticMethod()
用
Cursor c = db.rawQuery("SELECT '*' FROM '" + TABLE_DAYS + "'", null);
答案 4 :(得分:0)
原来错误是在其他地方 - 将错误的参数传递给创建数据库的方法。无论如何,谢谢所有回复。