我目前正在使用我的android應用程序的sqlite驗證和實施。目的是製作搜索關鍵字歷史記錄。所以在這種情況下,我希望當用戶輸入相同的關鍵字,但在不同的時間,我想通過更新sqlite數據庫中的「時間」列推進該關鍵字成爲最新的關鍵字。Android的SQLite更新錯誤沒有這樣的列
下面是代碼:
ContentValues values = new ContentValues();
values.put(KEY_TIME, time);
sqLiteDatabase.update(TABLE_NAME_SEARCH, values, KEY_KEYWORD + " = " + keyword, null);
但它會返回錯誤:
FATAL EXCEPTION: main
Process: com.lakupon, PID: 24030
android.database.sqlite.SQLiteException: no such column: a (code 1): , while compiling: UPDATE search SET time=? WHERE keyword = a
注:在這種情況下,「一」是關鍵字,我輸入了兩次,所以它正試圖更新「關鍵字」值爲「a」的行中的「時間」。
我不知道爲什麼它說沒有這樣的列,因爲當我打印出數據列表時,有一行的「關鍵字」值等於「a」,或使其更簡單,如果沒有這樣的關鍵字,那麼代碼就不應該運行,因爲我已經在外面進行了一些驗證。
我也不知道它爲什麼說「時間=?」因爲當我打印出「時間」參數時,它有我想要的時間值,比如「20170724_154935」。