поиск _id в Android недопустимое состояние исключения строка 0 col -1 - PullRequest
0 голосов
/ 03 апреля 2012

Я пытался выяснить это и погуглил довольно много ответов о переполнении стека, но ни один из них, похоже, не решает эту проблему. Я пытаюсь вернуть идентификатор строки, чтобы я мог обновить свою базу данных.

    String query= "SELECT * FROM climb_tbl WHERE climb_name ='"+climbname+"'";
    Cursor cur = db.rawQuery(query, null);
    cur.moveToFirst();
    long id = cur.getLong(cur.getColumnIndex("_id"));
    System.out.println(id);

Насколько я могу судить, это должно вернуть значение идентификатора, которое мне нужно, чтобы затем выполнить оператор обновления, я еще не написал. Вместо этого я получаю ошибку .....

java.lang.IllegalStateException: get field slot from row 0 col -1 failed.

1 Ответ

2 голосов
/ 03 апреля 2012
  1. Есть ли у вас _id столбец в вашей таблице?

  2. Возможно, курсор пуст. cur.moveToFirst() возвращает true или false, поэтому вы можете использовать его следующим образом:

    if (cur != null && cur.moveToFirst()) {
        long id = cur.getLong(cur.getColumnIndex("_id"));
        System.out.println(id);
    }
    
...