我试图从我的sqlite数据库中获取一行。当我运行这行代码时:-
RReckoner_info rReckoner_info = dbHandler.get_subcategory(1);
Log.d("INFO : ", rReckoner_info.getCategory_name());
我得到以下错误:-
android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0
public RReckoner_info get_subcategory(int id)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_SUBCATEGORY_LIST, new String[]{KEY_NAME,KEY_DESC, KEY_CATEGORY_ID, KEY_CONTENT1,KEY_CONTENTTYPE1,KEY_CONTENT2,KEY_CONTENTTYPE2,KEY_CONTENT3,KEY_CONTENTTYPE3,
KEY_CONTENT4,KEY_CONTENTTYPE4,KEY_CONTENT5,KEY_CONTENTTYPE5,KEY_CONTENT6,KEY_CONTENTTYPE6,KEY_ORDERID,KEY_STATUS ,KEY_UPDATED},KEY_NAME +"=?",
new String[]{String.valueOf(id)},null,null, null,null);
if (cursor !=null)
{
cursor.moveToFirst();
}
RReckoner_info rReckoner_info = new RReckoner_info(cursor.getString(0),cursor.getString(1),Integer.parseInt(cursor.getString(2)),
cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6)
,cursor.getString(7),cursor.getString(8),cursor.getString(9),cursor.getString(10),
cursor.getString(11),cursor.getString(12),cursor.getString(13),cursor.getString(14),
Integer.parseInt(cursor.getString(15)),cursor.getString(16),cursor.getString(17));
return rReckoner_info;
}
有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。
没有由查询提取的记录,如CursorIndexOutOfBoundsExc0019所示:
指示光标超出范围的异常。
检查是否至少有记录:
if (cursor !=null && cursor.getCount() > 0) {
cursor.moveToFirst();
// Code to extract data
}
或者您可以执行以下操作,因为如果没有记录,moveToFirst将返回false
如果游标为空,此方法将返回false。
if (cursor != null && cursor.moveToFirst()) {
// Code to extract data
}
改为
if (cursor !=null)
{
cursor.moveToFirst();
RReckoner_info rReckoner_info = new RReckoner_info(cursor.getString(0),cursor.getString(1),Integer.parseInt(cursor.getString(2)),
cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6)
,cursor.getString(7),cursor.getString(8),cursor.getString(9),cursor.getString(10),
cursor.getString(11),cursor.getString(12),cursor.getString(13),cursor.getString(14),
Integer.parseInt(cursor.getString(15)),cursor.getString(16),cursor.getString(17));
return rReckoner_info;
}
return null;
更改以下代码
发件人:
if (cursor !=null)
{
cursor.moveToFirst();
}
RReckoner_info rReckoner_info = new RReckoner_info(cursor.getString(0),cursor.getString(1),Integer.parseInt(cursor.getString(2)),
cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6)
,cursor.getString(7),cursor.getString(8),cursor.getString(9),cursor.getString(10),
cursor.getString(11),cursor.getString(12),cursor.getString(13),cursor.getString(14),
Integer.parseInt(cursor.getString(15)),cursor.getString(16),cursor.getString(17));
return rReckoner_info;
致:
if (cursor !=null && cursor.getCount() > 0)
{
cursor.moveToFirst();
RReckoner_info rReckoner_info = new RReckoner_info(cursor.getString(0),cursor.getString(1),Integer.parseInt(cursor.getString(2)),
cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6)
,cursor.getString(7),cursor.getString(8),cursor.getString(9),cursor.getString(10),
cursor.getString(11),cursor.getString(12),cursor.getString(13),cursor.getString(14),
Integer.parseInt(cursor.getString(15)),cursor.getString(16),cursor.getString(17));
return rReckoner_info;
}
return null;
如果没有找到我返回的null
行,您可以根据您的要求更改最后一部分,但您必须检查光标的count
,以避免出现CursorIndexOutOfBoundsException
。
我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:
我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。
我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误
我知道有很多关于这个异常的线程,但是,我希望人们查看我的代码,并在我特别出错的地方帮助我。 下面是我的代码,用于尝试将用户输入存储到sqlite数据库,然后将代码传输并显示在新活动中。有人能告诉我哪里出错了,为什么这个错误不断发生?(标题错误) } 在DO块内尝试2:
我试图用HighscoreDB中的数据填充10个文本视图。每次我的应用程序的游戏结束时,都会要求用户在数据库中存储他们的分数以及姓名。然后,我填充10个文本视图(实际上是20个,但有10行有名称和分数)。这曾经是有效的(当HighscoreDB中有一些highscore记录时),但是自从我创建了一个新的模拟器并因此删除了所有highscore行之后,我一直得到“android.database.C
我想从数据库中选择值,但出现错误 我不知道我的代码哪里错了。。这是我在dbHelper中的代码。 我想得到其他类的值。我使用这个代码。 我一直在搜索,但没有找到错误的解决方案。有人能帮我吗?我真的需要解决办法,请帮帮我。。谢谢当做