【问题标题】:Android SQLite Query and using cursor to deal with multiple rowsAndroid SQLite 查询和使用游标处理多行
【发布时间】:2023-03-18 06:20:01
【问题描述】:

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

  SELECT * FROM <table>

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

谢谢,

【问题讨论】:

    标签: java android sqlite android-cursor


    【解决方案1】:

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

    外层循环遍历每条记录:

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

    内部循环会循环遍历每一列

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

    【讨论】:

    • 我知道这已经被接受了,但是 do {}while (cursor.moveToNext()); 效果更好,因为如果你先检查 .moveToNext,你会跳过第一条记录...从经验中学习...
    • 你确定吗?返回时,游标通常位于位置 -1,调用 moveToNext() 会将其移动到第一行。此外,根据您的逻辑,do{} 中的代码块将始终至少执行一次,即使 Cursor 不包含任何记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多