Почему мой getColumnIndex () возвращает -1? - PullRequest
1 голос
/ 26 июня 2011

Хорошо, вот мой оператор создания базы данных:

create table entry (
 _id integer primary key autoincrement,
 date integer not null,
 checknum integer,
 payee text not null,
 amount integer not null,
 category text,
 memo text,
 tag text
);

После того, как база данных создана, и я делаю вызов вроде:

mChecknum = cursor.getColumnIndex("checknum");

mChecknum равен -1.Я извлек базу данных из устройства и использовал браузер SQLite, и там есть поле checknum.

Блокировка вокруг оператора, о котором идет речь:

mDbHelper.open();
Cursor cursor = mDbHelper.fetchAll();
startManagingCursor(cursor);
COL_DATE = cursor.getColumnIndex("date");
Log.v("Main:123", "COL_DATE: " + String.valueOf(COL_DATE) );
COL_CHECKNUM = cursor.getColumnIndex("checknum");
Log.v("Main:125", "COL_CHECKNUM: " + String.valueOf(COL_CHECKNUM) );
COL_PAYEE = cursor.getColumnIndex("payee");

COL_DATE возвращает 1, а COL_PAYEE возвращает 2Почему COL_CHECKNUM игнорируется / передается?

Ответы [ 2 ]

1 голос
/ 25 января 2012

В моей ситуации getColumnIndex возвращал ошибку для столбца, имя которого содержало «.»символ то есть:

int colIndex = cursor.getColumnIndex("Item No.");

и несмотря на столбец «Номер позиции»находился внутри курсора (это показало средство отладки) при попытке получить индекс столбца не удалось.

0 голосов
/ 26 июня 2011

В моих функциях базы данных fetch / fetchAll я забыл обновить запрос новым столбцом.

Например, до того, как я добавил новый столбец, мой код fetchAll выглядел так:

public Cursor fetchAll() {
    return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_DATE,
            KEY_PAYEE, KEY_AMOUNT, KEY_CATEGORY, KEY_MEMO, KEY_TAG}, 
            null, null, null, null, KEY_DATE + " desc");
}

После добавления нового столбца в базу данных моя функция fetchAll выглядит следующим образом:

public Cursor fetchAll() {
    return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_DATE, 
            KEY_CHECKNUM, KEY_PAYEE, KEY_AMOUNT, KEY_CATEGORY, KEY_MEMO, KEY_TAG}, 
            null, null, null, null, KEY_DATE + " desc");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...