Получить идентификатор строки базы данных sqlite в соответствии с запросом контента - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь удалить элемент из моего sqlite database

public Integer deleteData (String id){
        SQLiteDatabase db = this.getWritableDatabase();
       return db.delete(TABLE_NAME, "id" + "=?", new String[]{id});
    }

Пока что запрос delete работает хорошо.Но у меня возникают трудности с поиском конкретного id определенной строки.

Я пытался запросить данные в соответствии с определенным содержимым поля.

 public Integer getId(String desc, Integer id){
    SQLiteDatabase db = this.getWritableDatabase();
    db.rawQuery("SELECT id  FROM  fap_table WHERE description = '"+desc+"'" , null);
    return id;
}

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

1 Ответ

0 голосов
/ 19 ноября 2018

Используйте этот код для получения идентификатора:

public int getRow(String desc){
    int id = 0;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery("SELECT id  FROM  fap_table WHERE description = '"+desc+"'" , null);
    if (cursor != null) {
        if (cursor.moveToFirst()) 
            id =  cursor.getInt(0);
        cursor.close();
    }
    db.close();
    return id;
}

В вашем коде произошла ошибка, чтобы не присвоить результат db.rawQuery() объекту курсора.
db.rawQuery() возвращает нужный вам курсор, и из него вы извлекаете единственный столбец (если он существует), который является идентификатором.
Если курсор пуст, вы возвращаете 0.

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