Android不会更新SQLite数据库

时间:2011-08-31 17:26:33

标签: android sqliteopenhelper

我的Android应用程序中的SQLIte数据库遇到了一些问题。 问题是数据库永远不会更新,甚至不会在模拟器的多次重启,Eclipse或从DDMS中删除之后更新。

这是我的onCreate方法,位于扩展SQLiteOpenHelper的类中:

public void onCreate(SQLiteDatabase database) {
    try {
        database.execSQL(ESSENCE_TABLE_CREATE);
        database.execSQL(PACCO_TABLE_CREATE);
        database.execSQL(TAVOLE_TABLE_CREATE);
        database.rawQuery("insert into essenza values(1, 'Rovere')",
                null); // added later
    } catch (SQLException e) {
        Log.e("DB", e.getMessage());
    }
}

在实例化帮助程序后,我请求对数据库的引用:

    helper = new DBHelper(context, dbpath + "/" + DATABASE_NAME);
    database = helper.getWritableDatabase();

似乎rawQuery语句(稍后添加)未执行,而且正在使用的数据库是从先前版本缓存的。我也试图改变数据库的版本,但它没有用。我错过了什么吗?提前谢谢。

1 个答案:

答案 0 :(得分:6)

您有两种选择:

  1. 使用DDM从设备中删除数据库文件(查看/ data / data /)。这将迫使Android再次运行onCreate。
  2. 在构造函数中,增加传递给SQLiteOpenHelper的数据库版本。将原始查询添加到onUpgrade。
  3. 您可能需要选项1.如果您的应用用户的数据库要更新,则选项2会更好。