如何关闭SQLite Cursor和其他开放的SQLite数据库?

时间:2014-05-13 05:51:49

标签: android sqlite

我正在尝试在Android中编写代码并执行以下错误。我正在打开一个SQLite数据库并使用Cursor。

Java代码

              for(int y3=0;y3<10;y3++)
              {


                        String sql_query5= "SELECT * FROM Data WHERE Id="+y3+"";

                        Cursor cur5 = SQLiteDatabase.openDatabase(db, null, SQLiteDatabase.OPEN_READWRITE).rawQuery(sql_query5, null);

                        if(cur5.moveToNext())
                        {

                            //

                        }}

所以我需要在布局中显示Age,但我面临 SQLiteCantOpenDatabaseException 并且数据库对象未关闭。我不明白错误。

请让我知道一些解决方案和建议!!!

2 个答案:

答案 0 :(得分:0)

  1. 请勿使用硬编码文件路径。您无法保证文件系统的结构。
  2. 学习使用SQLiteOpenHelper。这有助于您创建和维护SQLite数据库。您可以创建new SQLiteOpenHelper并致电getReadableDatabase()
  3. ,而不是尝试自行打开数据库
  4. 完成从光标读取后,请致电cursor.close()
  5. 如果要关闭数据库,也可以在其上调用close();请注意,通过查询获得的任何游标将无法再为您提供数据,因此请确保在关闭数据库之前完成这些游标。

答案 1 :(得分:0)

@MyProg你可以分享你的日志吗?很容易解决你的错误..

和plz在您的查询中进行如下更改..

添加&#39;&#39;在你的

String sql_query5= "SELECT * FROM Data WHERE Id='"+y3+"' ";