好的,这是我的数据库创建语句:
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 浏览器,校验码字段就在那里。
阻止有问题的语句:
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?
最佳答案
在我的情况下,getColumnIndex 在名称包含“.”的列上返回错误。符号即:
int colIndex = cursor.getColumnIndex("Item No.");
尽管有“项目编号”栏。在游标内(调试器 Watch 显示它)试图获取列索引失败。
关于java - 为什么我的 getColumnIndex() 返回 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485563/