我正在尝试从SQLite表中删除数据,其中源列等于"在线"
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
是否因为我没有任何数据进入表格,其中列来源=在线
答案 0 :(得分:1)
你必须使用' Online'在你的字符串concat中(注意引号)。
从异常中可以看出,编译语句在引用列而不是字符串时是错误的。
您可能还想为参数使用预准备语句而不是字符串连接: How do I use prepared statements in SQlite in Android?
这是更干净,更安全的版本:)
答案 1 :(得分:1)
试试此代码。
db.execSQL("delete from "+ TABLE_REMINDERS + " where " + KEY_SOURCE + "=?",new String[] { "Online" });
答案 2 :(得分:0)
my_account.get_campaigns()