当前位置: 首页 > 知识库问答 >
问题:

sqlite db中另一个游标内的游标

申屠亦
2023-03-14

我有以下使用嵌套游标的代码。它们都不是空的,但我在内部游标上收到错误“android.database.CursorIndexOutOfBoundsException: Index 0请求,大小为0”。

Cursor cursor3 = null;

    Cursor cursor2 = db.getAllFriendsChat();  
    cursor2.moveToFirst();
    while (!cursor2.isAfterLast()) {
           String number = cursor2.getString(cursor2.getColumnIndexOrThrow(ChatModel.COLUMN_CHAT_SENT_TO));
           cursor3 = db.getName(number);
           String name   = cursor3.getString(cursor3.getColumnIndexOrThrow(db.KEY_NAME));
           db.insertList(name, number);
           cursor3.close();
           cursor2.moveToNext();
            }
            cursor2.close();

getName()方法:

public Cursor getName(String phone) {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor c = db.rawQuery("select * from " + TABLE_STUDENTS + " where phone_number = " + phone, null);
        if (c != null) {
            c.moveToFirst(); //***I see that this statement is executed.***
        }
        return c;
    }

我无法理解我在哪里做错了。有没有不同的方法来处理sqlite db中的嵌套游标。请帮助。

谢谢

共有1个答案

何海
2023-03-14

rawQuery()从不返回null

测试游标是否为空,您必须检查moveToFirst()是否成功,或者调用isAfterLast()

 类似资料:
  • 由于某种原因,我不能在VS代码中使用多个光标,有人知道哪些设置允许一次选择多行吗?

  • 是否有一个已经存在的程序可以创建一个虚拟光标供Sikuli使用,同时用户保持对鼠标光标的控制?我正在寻找在使用Sikuli时使调试代码不那么费力的方法。在这方面的任何提示也是欢迎的!

  • 本文向大家介绍Oracle DBMS中的游标,包括了Oracle DBMS中的游标的使用技巧和注意事项,需要的朋友参考一下 在Oracle中执行SQL语句时,将创建临时上下文区域。该区域包含与语句及其执行有关的所有相关信息。光标是指向该上下文区域的指针,并允许PL / SQL程序控制该区域。 有两种类型的游标。 隐式游标 显式游标 让我们从隐式游标开始- 隐式游标 每当执行SQL语句时,都会自动创

  • 主要内容:1. 声明游标,2. 打开游标,3. 使用游标,4. 关闭游标在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。 关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用 WHERE 子句来限制只有一条记录被选中。所以有时我们必须借助于游标来进行单条记录

  • 主要内容:问答和示例在Oracle中,游标(Cursors)是一种机制,可以通过该机制将名称分配给语句并处理该SQL语句中的信息。 以下是解释如何在Oracle/PLSQL中使用游标的主题列表: 声明一个游标: http://www.yiibai.com/oracle/cursors-declare.html OPEN语句: http://www.yiibai.com/oracle/cursors-open.html

  • 我在玩vscode配置,当我想选择代码行中的文本时,不小心更改了一些配置。 例如,当我想在代码中选择一些行时,会立即出现大量光标,而不是选择我想要的文本。如何更改此配置?因为几天前VSCode中的选择工作正常。 正如你在下面的截图中看到的,当我尝试选择这些行时,会发生这种情况:(