我正在尝试以最简单的方式获取我的数据库所拥有的条目数。
我正在尝试使用rawQuery“SELECT Count(*) FROM Students
”然后从游标中执行getInt方法来获取数字并稍后使用它。
这是我的方法
public int getNumberOfEntries() {
SQLiteDatabase db = helper.getWritableDatabase();
String query = ShaqedDB.NUMBER_OF_ENTRIES;
Cursor d = db.rawQuery(query, null);
d.moveToFirst();
while (!d.isAfterLast()) {
int numberReturned = d.getInt(0);
d.moveToNext();
return numberReturned;
}
return 0;
}
我到处寻找 - 我无法找到解决方案为什么我一直得到光标错误,光标无法读取第0行,第1列...即使我认为我将其指向col 0
答案 0 :(得分:0)
如果您不需要写,则应使用getReadableDatabase();
代替getWritableDatabase();
。在
d.getInt(0);
0
是您要检索值的列的索引。不要硬编码值。让光标检索列索引
d.getInt(d.getColumnIndexOrThrow("COLUMN_NAME"));
关于您的查询,您现在想要查询返回的结果数。您可以检索此值,询问光标的计数:
public int getNumberOfEntries() {
SQLiteDatabase db = helper.getReadableDatabase();
String query = ShaqedDB.NUMBER_OF_ENTRIES;
Cursor d = db.rawQuery(query, null);
return d.getCount();
}