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

Ski*_*zit 4 java sqlite android cursor

我有一个查询,(我正在使用rawQuery())

  SELECT * FROM <table>
Run Code Online (Sandbox Code Playgroud)

然后我用光标存储它返回的内容.从他们想要做的是,从第一行开始,cursor.moveToFirst()然后...... 然后逐列获取每一列,并将其特定值存储在变量中.然后我想进入下一行并做同样的事情.所以我想我的问题是如何让光标处理多个列?

谢谢,

Mat*_*y F 15

我可能在这里遗漏了一些东西,你不会有嵌套循环.

外部循环遍历每个记录:

while (cursor.moveToNext()) {
  ...
  // inner loop here
  ...
}
Run Code Online (Sandbox Code Playgroud)

并且内循环将循环通过每列

for (i=0; i<cursor.getColumnCount(); i++) {
  ...
  String var1 = cursor.getString(i);
  ...
}
Run Code Online (Sandbox Code Playgroud)

  • 你确定吗?返回时,游标通常位于-1位置,调用moveToNext()会将其移动到第一行.此外,使用您的逻辑,do {}内部的代码块将始终至少执行一次,即使Cursor不包含任何记录. (4认同)
  • 我知道这已经被接受了,但是`do {} while(cursor.moveToNext());`效果更好,因为如果你首先检查.moveToNext,你跳过第一条记录......从经验中学到...... (3认同)