我对 android 网站上的记事本教程有一个简短的问题。我在教程代码中写了一个简单的函数来删除整个数据库。它看起来像这样:
数据助手.java
public void deleteDatabase() {
this.mDb.delete(DATABASE_NAME, null, null);
}
Notepadv1.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase();
return true;
}
return super.onOptionsItemSelected(item);
}
但是当我运行应用程序并尝试删除数据库时,我会在 LogCat 中收到此错误:
sqlite 返回:错误代码 = 1,msg= 没有这样的表:数据
你能帮助如何解决这个问题。似乎函数 deleteDatabase 无法访问数据库。
非常感谢。
菲利克斯
谢谢你的帖子。现在我更新了代码:
数据助手.java
public boolean deleteDatabase(Context context) {
return context.deleteDatabase(DATABASE_NAME);
}
Notepadv1.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase(this);
return true;
}
return super.onOptionsItemSelected(item);
}
但是现在我必须重新启动删除数据库的应用程序。应用程序运行时我不工作。