Отображение строк с заданным идентификатором (оператор SELECT WHERE) в SQLite не работает в Android Studio - PullRequest
0 голосов
/ 06 июня 2018

У меня есть этот метод в моем SqliteOpenHelper классе:

public String getTablica(int id,Context context)
{
    SQLiteDatabase db=this.getWritableDatabase();

    String query="SELECT "+COL2+" FROM "+TABLE_NAME+" WHERE "+COL1+"="+id;

    Cursor cursor=db.rawQuery(query,null);

   try {
       cursor.moveToFirst();

       return cursor.getString(1);
   }
   catch(Exception ex)
   {
       Toast.makeText(context,ex.getMessage(),Toast.LENGTH_LONG).show();
       return "";
   }
}


Я получаю эту ошибку в строке cursor.getString (1)

enter image description here


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

1 Ответ

0 голосов
/ 06 июня 2018

С документы :

getString (int columnIndex) Возвращает значение запрошенного столбца в виде строки.

Результат и метод, который вызывает этот методисключение, когда значение столбца равно нулю или тип столбца не является строковым типом, определяется реализацией.

Параметры

columnIndex int: индекс с нулями целевого столбца.

Итак, метод getString() index параметра начинается с 0. Вы запрашиваете параметр с индексом 1, который является вторым столбцом.

return cursor.getString(1);

Поскольку вы запрашиваете только один столбец в своем операторе SELECT и пытаетесь получить второй, существует исключение, и именно поэтому он не работает.

Исправитьизменить предыдущую строку на эту:

return cursor.getString(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...