Android SQLite查询和使用游标处理多行

4

我有一个查询需求(使用 rawQuery())。

  SELECT * FROM <table>

我正在使用一个游标来存储返回的内容。接下来,我想从第一行开始,使用cursor.moveToFirst()方法逐列地存储每个列的特定值到变量中。然后,我想移动到下一行并重复此过程。所以我的问题是:如何让游标处理多个列?

谢谢。

1个回答

16

这里可能有些遗漏,难道你不需要一个嵌套循环吗?

外层循环遍历每个记录:

while (cursor.moveToNext()) {
  ...
  // inner loop here
  ...
}

内循环会遍历每一列。

for (i=0; i<cursor.getColumnCount(); i++) {
  ...
  String var1 = cursor.getString(i);
  ...
}

3
我知道这已经被接受了,但是 do {}while (cursor.moveToNext()); 更好,因为如果你首先检查 .moveToNext,则会跳过第一条记录...从经验中学到的... - AndyD273
4
你确定吗?光标通常在返回时处于位置 -1,并且调用 moveToNext() 将把它移动到第一行。 另外,根据你的逻辑,do{} 内部的代码块将始终至少执行一次,即使光标不包含任何记录。 - Matty F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接