2

当我将我的应用程序部署到 Android 中的模拟器时,数据库也将被部署。如果我对数据库进行任何更改,它将不会再次部署到模拟器。为此,每次我必须从设备管理器中删除模拟器并创建新模拟器。这个过程真的很烦人,任何关于如何从模拟器中删除数据库并部署新数据库的想法。

4

6 回答 6

2

您只需要增加您在构造函数中提供的数据库的版本或扩展 SQLIteOpenHelper 的类......

并覆盖 SQLIteOpenHelper 中的 onUpgrade :

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  if (newVersion > oldVersion)
    Log.v("Database Upgrade", "Database version higher than old.");
  myContext.deleteDatabase(DB_NAME);
}
于 2012-06-27T06:06:39.517 回答
1

按着这些次序:

DDMS > 从左侧面板中选择模拟器

从右侧选择 fileexplorer > 选择您的应用程序包单击数据库 foder 选择您的数据库并从右上角删除它(“红色减号”)删除按钮

于 2012-06-27T06:18:40.180 回答
1

更轻松:

打开 DDMS 预置(菜单窗口 >> 打开新预置)

选择文件探索标签。

然后转到数据 > 数据 > 包装名称 > 数据库 > 数据库名称。

并删除

于 2012-06-27T06:13:22.493 回答
0

而不是删除模拟器删除数据库

ddms----> 文件资源管理器 ----> data/data/your_package_name--->databases --->yourdatabase 。

并删除它。

你可以再做一件事

只需卸载应用程序并再次安装,这将删除数据库并再次创建数据库。

于 2012-06-27T06:13:47.703 回答
0

如果您想删除数据库,另一种方法是删除表并再次重新创建表,如下所示

String Droptable="drop table if exists item_master"; // where item_master is table name 
myDataBase.execSQL(Droptable); 

删除后将其重新创建为

 String Createtable="CREATE TABLE \"item_master\" (\"item_id\" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , \"item_name\" VARCHAR, \"item_img\" VARCHAR, \"item_s_desc\" TEXT, \"item_desc\" TEXT, \"item_map\" VARCHAR, \"bookmark\" VARCHAR DEFAULT N, \"category_id\" INTEGER)"; 

 myDataBase.execSQL(Createtable);

您可以根据您的要求更改列名或添加或删除列

于 2012-06-27T06:27:03.970 回答
0

快捷方便:

 context.deleteDatabase(DATABASE_NAME);
于 2012-06-27T06:08:53.727 回答