Как сделать два запроса базы данных в одном действии в Android - PullRequest
0 голосов
/ 21 июня 2011

Я хотел бы сделать SQL-запрос и поместить его в TextView. Я могу сделать это для ListView, следуя инструкциям / примерам использования adapters / dbHelpers. Я получаю CursorIndexOutOfBoundException, заставляет меня поверить, что я не правильно использую курсор.

Это код в onCreate:

    TextView summaryTV = (TextView) findViewById(R.id.summary);
    sumAllAmounts = iouHelper.getSumAllAmounts();
    startManagingCursor(sumAllAmounts);
    System.out.println(String.valueOf(iouHelper.getSumAllAmounts(sumAllAmounts)));
    summaryTV.setText(String.valueOf(iouHelper.getSumAllAmounts(sumAllAmounts)));

sumAllAmounts - это курсор, который возвращается помощником базы данных, выполняющим команду sql. Я знаю, что SQL-запрос правильный, потому что я проверил его, используя SQLite Database Browser. И я могу заставить его работать на ListView, используя ArrayAdapters.

Запрос должен возвращать 2 столбца: идентификатор и количество. helper.getSumAllAmounts(Cursor) вернет второй столбец Cursor.getInt(1) и преобразуется в строку для отображения в TextView. TextView.setText(String.valueOf(int))

Пожалуйста, покажите мне, где я все испортила. Благодаря.

EDIT:

Code for DB helper function:
public Cursor getSumAllAmounts() {
        return (getReadableDatabase().rawQuery("SELECT _id, SUM(amount) FROM ious", null));
    }

public int getSumAllAmounts(Cursor c){
        return (c.getInt(1));
    }

Схема для БД:

public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE ious (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, type TEXT, amount INT, description TEXT, date String);");
    }

1 Ответ

1 голос
/ 21 июня 2011

Ваша ошибка в helper.getSumAllAmounts(Cursor). Вы передаете недопустимый индекс столбца в функцию cursor.get *. Мне нужно увидеть строку проекции вашего запроса и ваши вызовы cursor.get *, чтобы точно сказать вам, что не так.

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