2012-09-24 66 views
0

我想獲得一個特定條目從我的DB與下面的代碼一個特定條目:充分利用數據庫錯誤

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; 


    } 

的問題是這將導致以下錯誤:

11月9日至24日:12:52.299:E/AndroidRuntime(7388):引起:android.database.CursorIndexOutOfBoundsException:索引-1請求,大小爲1

任何想法?它似乎知道它有一個大小(一個條目?),但我沒有得到索引-1請求的問題...

回答

3

在從遊標訪問數據之前,您必須移動第一條記錄。

c.moveToFirst() 
+0

謝謝你,我的愚蠢的錯誤,我錯過了:) –

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; 
+0

謝謝你,我的愚蠢的錯誤,我錯過了:) –