Cursor invalid statement in fillwindow()

这个问题我纠结很久,通过上网搜索答案,再经过自己的再三调试,终于搞定了。这里跟大家分享?

简单一点说就是:我在A类中打开一个数据库的连接!代码如下:

db=dbHelper.getReadableDatabase();
c=dbHelper.findById(db, rowId);
startManagingCursor(c);
while (c.moveToNext()){
title.setText(c.getString(c.getColumnIndex("title")));
title.setText(c.getString(c.getColumnIndex("body")));
}

然后调用B类中的查询方法就是上面的findById(db,rowId)方法,返回一个Cursor对象。下面是重点

这是B类中的查询方法,代码如下:

public Cursor findById(SQLiteDatabase db,long rowId){
Cursor c=null;
try{
String sql="select _id,title,body from note where _id="+rowId;
c=db.rawQuery(sql, null);
return c;
}
catch (Exception e){
e.printStackTrace();
  }finally{

  if(db!=null){

   db.close();

}

}
return null;
}

上面红色标注的地方,就是报异常的地方,意思是不能提前关闭数据库连接,只要去掉红色地方的代码就行了!!




原文地址:https://www.cnblogs.com/nizuimeiabc1/p/4254309.html