从数据库错误中获取一个特定条目

时间:2012-09-24 09:26:06

标签: android database

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

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请求的问题......

2 个答案:

答案 0 :(得分:3)

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

c.moveToFirst()

答案 1 :(得分: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;