错误: 无法从游标窗口读取第 0 行 col -1。在访问数据之前,请确保光标已正确初始化



我创建了一个非常简单的数据库android应用程序。它接受输入并显示结果。添加按钮用于添加输入,删除按钮用于删除存储在SQLite数据库中的输入。我在Android SQLite中的光标指向正确,但我仍然面临错误:由java.lang.IollegalStateException引起:无法从CursorWindow读取第0行第1列。在从游标访问数据之前,请确保游标已正确初始化。以下是游标部分:游标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;

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

显然,如果c.getColumnIndex("studentname")返回-1,那么结果集中就没有studentname列。

正如CommonsWare上面提到的,这看起来显然没有这样名称的列,这是绝对正确的。我的列名是StudentName,而不是StudentName,因此在正确的列名方面出现了错误,导致了-1(根本没有要处理的列(。感谢CommonsWare指出我的愚蠢错误:(

对于那些想用android开始理解SQLite的人,可以查看这门课程,我也是其中的一员,目前正在学习:https://www.udemy.com/androidcourse/在Udemy 上可用

最新更新