致命 - RuntimeException SQLite 从数据库中删除数据

Fatal - RuntimeException SQLite Remove Data from Database

我正在尝试从 SQLite table 中删除数据,其中源列等于 "Online"

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.reminders/com.reminders.FetchDataActivity}: android.database.sqlite.SQLiteException: no such column: Online (code 1): , while compiling: delete from ReminderTable where source = Online

这是我的代码:

public void deleteOnlineReminders() {
        SQLiteDatabase db = this.getReadableDatabase();
        db.execSQL("delete from "+ TABLE_REMINDERS + " where " + KEY_SOURCE + " = " + "Online");
    }

Or 是不是因为我没有任何数据进入 table 其中列源 = 在线

您必须在字符串连接中使用 'Online'(注意引号)。

正如您从异常中看到的,编译语句在其他方面是错误的,因为您引用的是列,而不是字符串。

您可能还想为参数使用准备好的语句而不是字符串连接: How do I use prepared statements in SQlite in Android?

这是更干净、更安全的版本:)

public void deleteOnlineReminders() {
    SQLiteDatabase db = this.getWritableDatabase();       
    dbHelper.delete(TABLE_REMINDERS, KEY_SOURCE + "=?", new String[] { Online})
}

试试这个代码。

db.execSQL("delete from "+ TABLE_REMINDERS + " where " + KEY_SOURCE + "=?",new String[] { "Online" });