我一直在尝试每一件事,但仍有一些人无法找到解决方案。尽管使用了close方法,但光标似乎仍未关闭。这令我很沮丧。任何帮助都感激不尽。这是我的代码
public class Order extends Activity{
DatabaseHelper helper;
Cursor c;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.order);
String columns[] = {"_id", "Name", "Price"};
helper = new DatabaseHelper(this);
db=helper.getWritableDatabase();
c=db.query("lite", columns, null, null, null, null, null);
c.moveToFirst();
curs();
c.close();
helper.close();
}
public void curs()
{
String r = "";
while(!c.isAfterLast())
{
r=r + c.getString(c.getColumnIndex("_id")) + " "+c.getString(c.getColumnIndex("Name"))+" "+c.getString(c.getColumnIndex("Price"));
c.moveToNext();
}
}
答案 0 :(得分:1)
修改
curs();
c.close();
helper.close();
到
curs();
if(!isClosed()){
c.close();
}
helper.close();
db.close();
答案 1 :(得分:0)
您还没有关闭数据库,试试这个
db.close();
c.close();
helper.close();
另外,我建议您可以将'Cursor'声明为局部变量而不是全局,并将其作为参数传递给您的方法'curs'