0

我正在尝试使用以下代码从我的数据库中获取一个特定条目:

Object specificObject = myDbHelper.getObject(int id, int level);

// code in DataBaseHelper:

public Object getObject(int id, int level){

        c = myDataBase.rawQuery("SELECT * FROM QUESTIONS WHERE ID =" + id + " AND LEVEL = " + level, null);

        Object q = new Object();
        q.setQuestion(c.getString(1));
        q.setName(c.getString(2));
        q.setFile(c.getInt(3));
        q.setAnswer(c.getString(4));
        return q;


    }

问题是这会导致以下错误:

09-24 11:12:52.299:E/AndroidRuntime(7388):由:android.database.CursorIndexOutOfBoundsException:请求索引 -1,大小为 1

有任何想法吗?似乎它知道它的大小为一个(一个条目?),但我没有得到索引 -1 请求的问题......

4

2 回答 2

3

在从游标访问数据之前,您必须移动第一条记录。

c.moveToFirst()
于 2012-09-24T09:27:59.493 回答
1

你应该这样做:

c = myDataBase.rawQuery("SELECT * FROM QUESTIONS WHERE ID =" + id + " AND LEVEL = " + level, null);

    if(c.moveToFirst()) {
      Object q = new Object();
      q.setQuestion(c.getString(1));
      q.setName(c.getString(2));
      q.setFile(c.getInt(3));
      q.setAnswer(c.getString(4));
      return q;
    }
return null;
于 2012-09-24T09:29:33.190 回答