我目前正在我的 android 应用程序中使用 sqlite 进行验证和实现。目的是使搜索关键字历史。所以在这种情况下,我希望当用户输入相同的关键字但在不同的时间时,我想通过更新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”的行中的“时间”。
我不知道为什么它说没有这样的列,因为当我打印出数据列表时,有一行的“关键字”值等于“a”,或者为了更简单,如果没有这样的关键字,那么代码根本不应该运行,因为我在外面做了一些验证。
我也不知道为什么它说“时间=?” 因为当我打印出“时间”参数时,它具有我想要的时间值,例如“20170724_154935”。
"a" 是一个字符串,因此它必须包含在字符串分隔符( '
) 中。
像这样:... WHERE keyword = 'a'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句