Курсор SQLite возвращает NULL, если в Android не найдено ни одной записи - PullRequest
0 голосов
/ 10 октября 2011

У меня сегодня проблема с извлечением данных из SQLite.Вот моя кодировка

public Cursor fetchDictionary(String searchword) throws SQLException {
    Cursor mCursor =
        mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
                KEY_WORD, KEY_DEF}, KEY_WORD + "='" + searchword + "'", null,
                null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

Выше кодировки, если не найдена запись, диалоговое окно с подсказкой Android и принудительное закрытие.Есть ли способ вернуть сообщение об ошибке "запись не найдена", если запись не найдена?

Ответы [ 4 ]

4 голосов
/ 10 апреля 2012

Вы также можете сделать следующее, чтобы проверить, есть ли данные в текущем столбце индекса cursor.isNull(columnIndex);

2 голосов
/ 03 февраля 2016
try{
 Cursor mCursor =
    mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
            KEY_WORD, KEY_DEF}, KEY_WORD + "='" + searchword + "'", null,
            null, null, null, null);
if (mCursor != null && mCursor.getCount()>0) {
    mCursor.moveToFirst();
     // rest goes here
}else{
     Toast.makeText(context,"No records found ",Toast.LENGTH_LONG).show();
     // show error msg here 
}
}catch(Exception e){
     e.printStackTrace();
}
1 голос
/ 10 октября 2011

Попробуйте поймать и замените e.printStackTrace() вашими сообщениями.

1 голос
/ 10 октября 2011

В вашем коде есть "throws SQLException" ... перехватить исключение и определить, является ли исключение причиной отсутствия записи.

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