重新安装应用程序时,是否可以删除先前安装的相同应用程序(数据库表和共享首选项等)的任何现有数据集?
我有一个应用程序可以在sqlite数据库中存储一些值,如果在没有事先正确卸载的情况下重新安装该应用程序。我遇到过以前的数据库条目等问题。
答案 0 :(得分:3)
如果卸载应用程序没有做的话尝试这个:
System Parameters -> Manage Applications -> Your Application -> Clear data
如果单击按钮(清除数据),您将看到一个对话框,显示将清除哪种数据。
修改强>: 如果您想以编程方式执行此操作,您可以:
在构造函数的super
方法中更改数据库版本:
super(context, DATABASE_NAME, null, NEW_DB_VERSION);
在创建表格之前添加drop
语句。
database.execSQL("DROP TABLE IF EXISTS your_table");
database.execSQL(" CREATE TABLE your_table ...");
继续深入研究数据库:
this.context.deleteDatabase(YOUR_DATABASE_NAME;
答案 1 :(得分:1)
非常简单。
首先使用drop
查询
sdb.execSQL("DROP TABLE IF EXISTS tablename");
然后再次使用create table
查询
sdb.execSQL(" CREATE TABLE tablename(col1 TEXT PRIMARY KEY)");
或
使用路径data->data->package->databases->dbname
答案 2 :(得分:1)
在 OpenHelper 中将数据库版本更新为更大的值,它会自动删除数据库中的所有表并重新创建它们。
对于共享偏好设置..您可以在调用onUpgrade
时从 OpenHelper 中清除它们。
答案 3 :(得分:0)
像Ankit Popli所说,使用版本是正确的方法:
public class Database extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "YourDBName.db";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// ALl the deletion operation here.
db.execSQL("DROP TABLE IF EXISTS "+Database.TABLE);
onCreate(db);
}
}
当版本号递增时,AndroidSqlite将自动调用onUpgrade函数。在那里删除所有数据库。