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

原因:android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1

钱和安
2023-03-14

我想从数据库中选择值,但出现错误

Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1

我不知道我的代码哪里错了。。这是我在dbHelper中的代码。

public Cursor pilihKontak( String nomor ) {
    Cursor c = dba.rawQuery("SELECT idkontak FROM TB_kontak where nomor = '"+nomor+"'", null);
    return c;
}

我想得到其他类的值。我使用这个代码。

Cursor cursorKontak = data.pilihKontak(nomor);
    idkontak = cursorKontak.getString(cursorKontak.getColumnIndex("k_id"));

我一直在搜索,但没有找到错误的解决方案。有人能帮我吗?我真的需要解决办法,请帮帮我。。谢谢当做

共有3个答案

司空鸿熙
2023-03-14

使用

Cursor c = dba.rawQuery("SELECT k_id FROM TB_kontak where nomor = '"+nomor+"'", null);
蒋昊天
2023-03-14

官方文件说:

函数:getColnIndex(String列名):

它返回给定列名的从零开始的索引,如果该列不存在,则返回-1。

因此,如果您在错误中获得了索引-1请求,这意味着该列不存在。因此,尝试按照@StinePike的建议包含该列,或者您可以尝试获取所有行:

 Cursor c = dba.rawQuery("SELECT * FROM TB_kontak where nomor = '"+nomor+"'", null);

然后使用正确的列名:

 Cursor cursorKontak = data.pilihKontak(nomor);
 idkontak = cursorKontak.getString(cursorKontak.getColumnIndex("CORRECT_COLUMN_NAME"));

希望有帮助。

支华池
2023-03-14

您需要将光标移动到第一个位置,“k_id”应该是“idkontak”。

Cursor cursorKontak = data.pilihKontak(nomor);
if (cursorKontak.moveToFirst()) {
    idkontak = cursorKontak.getString(cursorKontak.getColumnIndex("idkontak"));
}
 类似资料:
  • 我知道有很多关于这个异常的线程,但是,我希望人们查看我的代码,并在我特别出错的地方帮助我。 下面是我的代码,用于尝试将用户输入存储到sqlite数据库,然后将代码传输并显示在新活动中。有人能告诉我哪里出错了,为什么这个错误不断发生?(标题错误) } 在DO块内尝试2:

  • 我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:

  • 我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误

  • 我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。

  • 我试图用HighscoreDB中的数据填充10个文本视图。每次我的应用程序的游戏结束时,都会要求用户在数据库中存储他们的分数以及姓名。然后,我填充10个文本视图(实际上是20个,但有10行有名称和分数)。这曾经是有效的(当HighscoreDB中有一些highscore记录时),但是自从我创建了一个新的模拟器并因此删除了所有highscore行之后,我一直得到“android.database.C

  • 正如标题所说,我的问题是,当我编译时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:1,Size:1中得到了Exception。这是问题产生的部分。 编辑。 我一直在网上寻找解决方案,所以我很确定问题是数组太小,但我仍然不确定如何解决它。我试图让代码的上半部分只从数组中取出数字并将它们放入一个新的数组中。 这是我调用的其他方法。 我已经坚持