CursorIndexOutOfBoundsException Запрошен индекс 0 с размером 0

Я пытаюсь получить текст из определенной строки моей базы данных. Для этого я сделал эту функцию

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);

Моя таблица выглядит так:

enter image description here

Я получаю эту ошибку:

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)

Почему я получаю эту ошибку? Что я здесь делаю неправильно?

Заранее спасибо.

7
задан Xavi 27 August 2014 в 18:04
поделиться