我正在使用SQLite来构建测验应用。我实施了一些问题,一切都很好。然后我注意到其中一个是不正确的,我说得对。当我将应用程序运行到模拟器时没有任何改变。经过一些研究后,我发现我必须手动擦除曾经运行过的设备中的所有数据。
有没有比手动擦除数据更好的方法来解决这类问题?
答案 0 :(得分:0)
如果更改数据库的结构,还需要增加DB的版本。通过这样做,将调用SQLiteOpenHelper onUpgrade方法。您可以执行任何查询使用wish是这种方法,但在您的情况下,只需删除表并调用onCreate方法就可以了。
private class MyHelper extends SQLiteOpenHelper{
private final static String DATABASE_NAME = "dbname.db";
private final static int VERSION = 23; //you need to increase this
public MyHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(QUERY_CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL(Query_DROP_TABLE);
onCreate(db);
}
}