我的数据库中最初有一个1(一个)表。然后,我意识到我将在该数据库中添加另一个表。
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE if not exists profile (" +
"email text primary key not null, " +
"username text, " +
"profilePicture text, " +
"about text)";
db.execSQL(sql);
sql = "CREATE TABLE if not exists current_user (" +
"email text)";
db.execSQL(sql);
sql = "INSERT INTO current_user(email)" +
"VALUES ('')";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS profile";
db.execSQL(sql);
sql = "DROP TABLE IF EXISTS current_user";
db.execSQL(sql);
onCreate(db);
}
当我想更新current_user的电子邮件时,它会向我发送异常
public void setCurrentEmail(String email){
ContentValues rsValues = new ContentValues();
rsValues.put("email", email);
database.update("current_user", rsValues, null, null);
}
no such table: current_user (code 1):
其他人说,您必须更改数据库的名称才能使其正常工作,但是 有其他选择吗?
答案 0 :(得分:0)
如果在更新SQLiteOpenHelper类的代码后没有卸载应用,则必须这样做。
onCreate()
方法仅在第一次创建数据库时被调用。因此,现在数据库中没有表current_user
。
从设备或仿真器上卸载该应用程序,以便删除数据库并重新开始。