我有一个sqliteHelper从数据库中的表中获取数据,我想从这个类构建一个对象并读取数据库,但我得到了这个错误:
无法从CursorWindow读取第0行,col -1,确保游标正确初始化android
这是我在sqliteHelper类中的get函数:
public Vector<NoteTableItem> getAllNote() {
Vector<NoteTableItem> list = new Vector<NoteTableItem>();
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + NOTE_TABLE_NAME ;
Cursor c = db.rawQuery(selectQuery, null);
//startManagingCursor(c);
c.moveToFirst();
if (c.getCount() > 0)
do {
NoteTableItem item = new NoteTableItem();
item.ID=c.getInt(c.getColumnIndex(KEY_ID));
item.title=c.getString(c.getColumnIndex(KEY_TITLE));
item.text=c.getString(c.getColumnIndex(KEY_TEXT));
item.photoAddress=c.getString(c.getColumnIndex(KEY_PHOTOADDRESS));
item.year=c.getInt(c.getColumnIndex(KEY_YEAR));
item.mounth=c.getInt(c.getColumnIndex(KEY_MOUNTH));
item.day=c.getInt(c.getColumnIndex(KEY_DAY));
item.hour=c.getInt(c.getColumnIndex(KEY_HOUR));
item.minute=c.getInt(c.getColumnIndex(KEY_MINUTE));
item.checked=c.getInt(c.getColumnIndex(KEY_CHECKED));
list.add(item);
} while (c.moveToNext());
db.close();
return list;
}
我只是想创建这个类的对象。
private static final String CREATE_NOTE_TABLE_NAME = " CREATE TABLE IF NOT EXISTS "
+ NOTE_TABLE_NAME
+ "("
+ KEY_ID
+ " INTEGER , "
+ KEY_TITLE
+ " TEXT , "
+ KEY_TEXT
+ " TEXT , "
+ KEY_PHOTOADDRESS
+ " TEXT , "
+ KEY_YEAR
+ " INTEGER , "
+ KEY_MOUNTH
+ " INTEGER , "
+ KEY_DAY
+ " INTEGER , "
+ KEY_HOUR
+ " INTEGER , "
+ KEY_MINUTE
+ " INTEGER , "
+ KEY_CHECKED
+ " INTEGER ) ; ";
答案 0 :(得分:0)
您的光标不包含您认为的所有列,并且getColumnIndex()
返回-1
以指示至少其中一列的“未找到”。
如果您认为列应该在那里,请卸载您的应用以删除可能的旧数据库文件。