Проблемы с использованием курсора чтения из базы данных SQLite3 Android - PullRequest
0 голосов
/ 16 августа 2011

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

У меня есть действие, которое работает, пока я не вызову эту команду.

Log.d("Testing","Testing: " + cardID + " " + cardTypeID);
//LogCat displays the right values 11 1

Cursor c = mDbHelper.fetchCard(cardID,cardTypeID);  // <--COMMAND

Вспомогательный метод выглядит следующим образом

public Cursor fetchCard(String cardID,String cardTypeID) {  
    String sql = "SELECT teamName FROM tbl_team JOIN tbl_card ON tbl_team.teamID = tbl_card.teamID WHERE cardID=" + cardID;
    //This returns 1 row when run in a SQLite Database Browser

    Log.d("Testing","Testing :" + cardID + " " + cardTypeID );
    // Program has crashed before this Log
    // Caused by: java.lang.NullPointerException

    Cursor c;
    c =  mDb.rawQuery(sql, null);

    return c;

Я склоняюсь к этомупотому что есть только одна строка, которая была прочитана, и мне нужно сделать c.moveFirst() или что-то еще.Поможет в этом разобраться.Кроме того, почему бы мне не написать в LogCat.Кажется, сразу же выходит из строя ???

PS.Я попытался вернуть mDb.rawQuery(sql, null);, который, как я считаю, делает то же самое, что и выше.

Большое спасибо

1 Ответ

1 голос
/ 16 августа 2011

Ваш mDbHelper равен нулю. Инициализируйте это. И научитесь использовать LogCat вместо того, чтобы угадывать с журналами строку, в которой происходит сбой приложения, это действительно помогает.

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