我正在尝试从数据库的某一行获取文本。为此,我做了这个函数
public String getTranslation(long rowId) throws SQLException {
String str = null;
Cursor mCursor = db.query(
true, TABLE_LANGUAGE_FR, new String[] {
KEY_ID_INTERFACE_TEXT, KEY_ITEM_NAME,KEY_FORM_LABEL_ID, KEY_FORM_RANK
},
KEY_FORM_LABEL_ID + "=" + rowId, null, null, null, null, null
);
if (mCursor != null) {
mCursor.moveToFirst();
str = mCursor.getString(mCursor.getColumnIndex(KEY_ITEM_NAME));
}
return str;
}
我这样称呼它:
db = new DbAdapter(this);
db.createDatabase();
db.openDataBase();
String str = db.getTranslation(1706);
我的桌子看起来像这样:
我得到这个错误:
09:32:08.965 307 com.Orange ERROR AndroidRuntime Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
09:32:08.965 307 com.Orange ERROR AndroidRuntime at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
09:32:08.965 307 com.Orange ERROR AndroidRuntime at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
09:32:08.965 307 com.Orange ERROR AndroidRuntime at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
09:32:08.965 307 com.Orange ERROR AndroidRuntime at com.Orange.Database.DbAdapter.getTranslation(DbAdapter.java:141)
09:32:08.965 307 com.Orange ERROR AndroidRuntime at com.Orange.Authentication.onCreate(Authentication.java:32)
为什么我会犯这个错误?我做错了什么?
提前感谢。
试着改变这条线
Cursor mCursor = db.query(true, TABLE_LANGUAGE_FR, new String[] {
KEY_ID_INTERFACE_TEXT, KEY_ITEM_NAME,KEY_FORM_LABEL_ID, KEY_FORM_RANK},
KEY_FORM_LABEL_ID + "=" + rowId, null, null, null,
null, null);
由
Cursor mCursor = db.query(TABLE_LANGUAGE_FR, new String[] {
KEY_ID_INTERFACE_TEXT, KEY_ITEM_NAME,KEY_FORM_LABEL_ID, KEY_FORM_RANK},
KEY_FORM_LABEL_ID + "=" + rowId, null, null, null,
null);
并将其添加到if条件中
return str;
尝试使用
while(cursor.moveToNext())
{
if(cursor.isFirst())
{
//Your code goes here in your case
return mCursor.getString(mCursor.getColumnIndex(KEY_ITEM_NAME));
}
}
finaly
{
if(mCursor!= null)
{
mCursor.close();
}
}
看起来你有一个emtpy光标。请尝试检查,而不是检查它是否为空
if(mCursor.getCount() > 0)
{
//do stuff
}
尝试删除where条件,以确保在运行select语句时实际获取数据。如果仍然没有任何结果,则可能是表名输入错误,或者无法连接/创建数据库/表。
Cursor mCursor = db.query("sys_interface_text", new String[] {
"id_interface_text", "item_name","form_label_id", "form_rank"},
"form_label_id = 1706", null, null, null,
null);
我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。
我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:
我得到错误java.lang.IndexOutOfBoundsException:index:0,size:0。
我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误
我想使用来表示优先级队列。所以我想在ArrayList的特定位置添加项。但当我运行它时,系统告诉我 线程“main”java.lang.IndexOutOfBoundsException:索引:10,大小:0。
我知道有很多关于这个异常的线程,但是,我希望人们查看我的代码,并在我特别出错的地方帮助我。 下面是我的代码,用于尝试将用户输入存储到sqlite数据库,然后将代码传输并显示在新活动中。有人能告诉我哪里出错了,为什么这个错误不断发生?(标题错误) } 在DO块内尝试2: