错误:无法从CursorWindow读取第0行col -1。在访问数据之前,请确保正确初始化Cursor

时间:2016-08-07 22:45:05

标签: android android-studio sqlite android-sqlite

我创建了一个非常简单的数据库 Android应用。它需要输入和显示结果。添加按钮用于添加输入和删除按钮,用于删除存储在SQLite数据库中的输入。 Android SQLite中的光标指向正确,但我仍然面临错误:引起:java.lang.IllegalStateException:无法从CursorWindow读取第0行col -1。在从中访问数据之前,请确保Cursor已正确初始化。以下是游标部分: 游标c = db.rawQuery(query,null);

    c.moveToFirst();

    //Traversing through DB
    while (!c.isAfterLast()){
        if(c.getString(c.getColumnIndex("studentname")) !=null)
        {
            dbString += c.getString(c.getColumnIndex("studentname"));
            dbString +="\n"; }

        c.moveToNext(); }
        db.close();

        return dbString;

我已尝试更改光标位置但仍出现相同的错误。我在其他网站上进行了研究,概念也是如此,但仍存在问题。

2 个答案:

答案 0 :(得分:4)

显然,如果studentname正在返回c.getColumnIndex("studentname"),则结果集中没有-1列。

答案 1 :(得分:2)

正如CommonsWare上面提到的,这显然看起来没有这样的名字列,它绝对是真的。我的列名是StudentName,而不是studentname,因此关于正确的列名称存在错误,导致-1(根本没有列工作)。感谢CommonsWare指出我的愚蠢错误:)

  

对于那些想要启动SQLite与android的理解的人,可以查看我目前也参与其中的课程并从中学习:https://www.udemy.com/androidcourse/ Udemy