光标索引超出界限异常(android SQLite)

时间:2017-04-12 18:12:57

标签: android sqlite

我想根据另一列显示列中的数据,所以我在HelperDB中使用此方法来获取Cursor:

public Cursor getData(String EMAIL) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "SELECT * FROM table_users WHERE email LIKE '" + EMAIL +"';" , null );
    return res;
}

要显示(hlp是HlperDB):

Cursor c = hlp.getData(Email);
tv3 = (TextView) findViewById(R.id.tv3);
tv3.setText(c.getString(c.getColumnIndex(HelperDB.NOTES)));

但是它给出了这个错误:android.database.CursorIndexOutOfBoundsException:索引-1请求,大小为1

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

Cursor c = hlp.getData(Email);
if(c != null)
    c.moveToFirst();

tv3 = (TextView) findViewById(R.id.tv3);
tv3.setText(c.getString(c.getColumnIndex(HelperDB.NOTES)));

答案 1 :(得分:0)

我的猜测是你的Cursor没有数据(是NULL)。 Cursor.getColumneIndex(link)的API文档表明如果列不存在,它将返回-1。然后当你尝试执行getString()时,你传递的是-1,那就是你的错误。