我得到了例外:
09-17 09:49:05.424:ERROR / Database(5971):更新错误 suggest_text_1 =使用UPDATE的Testttttttt suggest_text_2 = null FTStitleslist SET suggest_text_1 = ?, suggest_text_2 =?哪里 suggest_text_1 =测试09-17 09:49:05.434:ERROR / AndroidRuntime(5971): 致命异议:主要 android.database.sqlite.SQLiteException:没有这样的列:测试:,编译时:UPDATE FTStitleslist SET suggest_text_1 =?, suggest_text_2 =? WHERE suggest_text_1 =测试 在android.database.sqlite.SQLiteCompiledSql.native_compile(Native 方法)
当我执行方法时:
public void updateTitle(String oldTitle, String newTitle) {
ContentValues newValues = new ContentValues();
newValues.put(KEY_WORD, newTitle);
newValues.put(KEY_DEFINITION, "null");
getWritableDatabase().update(FTS_VIRTUAL_TABLE, newValues, KEY_WORD + "=" + oldTitle, null);
}
创建的数据库如下:
private static final String FTS_TABLE_CREATE =
"CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE +
" USING fts3 (" +
KEY_WORD + ", " +
KEY_DEFINITION + ");";
怎么了?
答案 0 :(得分:1)
您的文字值必须用单引号括起来:
'Test'
如果不是,编译器将尝试将值(即Test)解释为列名。
来自异常消息:
WHERE suggest_text_1=Test