这个SQLite查询有什么问题?

时间:2011-11-22 00:12:26

标签: java android sqlite

我可以保证数据库具有我要查找的所有列和值。

查询以CursorOutOfBounds返回。有没有人有任何想法为什么以及我应该测试什么?

    Cursor c = db.rawQuery("SELECT * FROM table WHERE _id="+nextvalue+"" , null);
    c.moveToFirst();
    numval = c.getInt(c.getColumnIndex("_id"));                 
    c.close();

Logcat输出

11-22 00:08:36.614: ERROR/AndroidRuntime(25405): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

2 个答案:

答案 0 :(得分:3)

查询返回空结果集。没有id为nextvalue的记录(无论是什么)。您应该检查moveToFirst()是否成功:

if (c.moveToFirst()) {
    numval = c.getInt(c.getColumnIndex("_id"));
} else {
    // no results returned
}
c.close();

答案 1 :(得分:0)

该语句是否在CursorAdapter的bindview中?如果是,请尝试删除c.moveToFirst()