如何在android java中删除SQLite数据库表

问题描述 投票:0回答:1

我使用以下代码来删除 SQLite 数据库表。显然,有一条消息表明该表已被删除,但是当应用程序再次运行时,该表再次显示。

ContactsDetailsDbAdapter.java

    private String r(String s, String str, String s1) {
this.s = s;
this.str = str;
this.s1 = s1;
return str;
}

 public void deleteGroupData(String str) {
this.mDb.delete(DATABASE_TABLE, r("contact_group_id='", str, "'"), (String[]) null);
 }

GroupDetailsDbAdapter.java

        public boolean deleteData(String str) {
    SQLiteDatabase sQLiteDatabase = this.mDb;
    StringBuilder sb = new StringBuilder();
    sb.append("group_id=");
    sb.append(str);
    return sQLiteDatabase.delete(DATABASE_TABLE, sb.toString(), 
(String[]) null) > 0;
}

联系人列表.java

   button.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View view) {
    GroupDetailsDbAdapter groupDetailsDbAdapter = new 
   GroupDetailsDbAdapter(ContactsList.this);
    groupDetailsDbAdapter.open();
    groupDetailsDbAdapter.deleteData(str);
    groupDetailsDbAdapter.close();
    ContactsDetailsDbAdapter contactsDetailsDbAdapter = new 
    ContactsDetailsDbAdapter(ContactsList.this);
    contactsDetailsDbAdapter.open();
    contactsDetailsDbAdapter.deleteGroupData(str);
    contactsDetailsDbAdapter.close();
    dialog.dismiss();
    Toast.makeText(ContactsList.this.getApplicationContext(), "Deleted Successfully", 
   Toast.LENGTH_SHORT).show();
    ContactsList.this.finish();
    return true;
   }
  });

Logcat 中显示以下错误。有人可以检查一下这段代码并告诉我错误是什么吗?

java android sqlite
1个回答
0
投票

https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#delete(java.lang.String,%20java.lang.String,%20java.lang.String[]):- 删除数据库中的行的便捷方法。

您需要DROP表格,并且没有方便的方法可以这样做,因此您可以使用

execSQL
方法。

例如

sQLiteDatabase.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE + ";";

按照https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#execSQL(java.lang.String)

  • IF EXISTS 
    表示如果表不存在也不会失败。

  • execSQL 不返回任何值,因此您需要要么不返回任何值,要么确定要返回的合适值。

表是行(0 到 n 行)的容器。删除所有行将导致表仍然存在但为空。

© www.soinside.com 2019 - 2024. All rights reserved.