我创建了一个非常简单的数据库 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;
我已尝试更改光标位置但仍出现相同的错误。我在其他网站上进行了研究,概念也是如此,但仍存在问题。
答案 0 :(得分:4)
显然,如果studentname
正在返回c.getColumnIndex("studentname")
,则结果集中没有-1
列。
答案 1 :(得分:2)
正如CommonsWare上面提到的,这显然看起来没有这样的名字列,它绝对是真的。我的列名是StudentName,而不是studentname,因此关于正确的列名称存在错误,导致-1(根本没有列工作)。感谢CommonsWare指出我的愚蠢错误:)
对于那些想要启动SQLite与android的理解的人,可以查看我目前也参与其中的课程并从中学习:https://www.udemy.com/androidcourse/ Udemy