没有moveToFirst的Cursor.moveToNext

时间:2014-03-24 14:19:42

标签: java android sqlite

下一个代码会按预期工作吗?

Cursor c = db.query(tableName, requestedColumns, condition,
        conditionParams, null, null, sortOrder);
while(c.moveToNext())   {
     //do stuff with rows
}

我到目前为止发现的示例建议先调用c.moveToFirst(),但这是否真的有必要?

3 个答案:

答案 0 :(得分:9)

是的,它会起作用,moveToNext实际上会调用moveToFirst

答案 1 :(得分:3)

是的,它会起作用,第一个moveToNext()会将光标指向结果集的第一个条目,(如果结果集有值)

答案 2 :(得分:2)

迟到的答案,但对于其他人找到此页面可能有用。我一直在使用:“if()do {} while();”环。如果游标中没有返回任何行,则“moveToFirst()”函数返回false。 “moveToNext()”函数在游标的结束时返回false:

Cursor c = db.query(......);

if (c.moveToFirst()) do {
   data = c.getString(0) // eg. get value from first column in cursor
   // do something more
} while (c.moveToNext());

c.close();
相关问题