Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 错误:确保光标已正确初始化_Android_Sqlite - Fatal编程技术网

Android 错误:确保光标已正确初始化

Android 错误:确保光标已正确初始化,android,sqlite,Android,Sqlite,我有一个sqliteHelper可以从数据库中的表中获取数据,我想从这个类中构建一个对象并读取数据库,但我得到了一个错误: 无法从游标窗口读取第0行第1列,请确保游标已正确初始化 这是sqliteHelper类中的get函数: public Vector<NoteTableItem> getAllNote() { Vector<NoteTableItem> list = new Vector<NoteTableItem>(); SQLiteDa

我有一个sqliteHelper可以从数据库中的表中获取数据,我想从这个类中构建一个对象并读取数据库,但我得到了一个错误:

无法从游标窗口读取第0行第1列,请确保游标已正确初始化

这是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;
   }

您的光标不包含您认为的所有列,
getColumnIndex()
返回
-1
,以指示至少一列的“未找到”


如果您认为列应该存在,请卸载您的应用程序以清除可能存在的旧数据库文件。

如果需要帮助,请发布数据库架构(创建表)。我可以使用此代码,但现在无法使用!!我取消了重新启动并出错,我编辑了表notetableitem,但未清除旧表:-)
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   ) ; ";