2012-09-11 48 views
0

我有一個數據庫,像創建:刪除行

mDatabase.execSQL(FTS_TABLE_CREATE); 

其中FTS_TABLE_CREATE

private static final String FTS_TABLE_CREATE = 
       "CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE + 
         " USING fts3 (" + 
         KEY_WORD + ", " + 
         KEY_DEFINITION + ");"; 

然後,添加一個新行吧:

public long addTitle(String word) { 
      ContentValues initialValues = new ContentValues(); 
      initialValues.put(KEY_WORD, "test"); 
      initialValues.put(KEY_DEFINITION, "null"); 

      return getWritableDatabase().insert(FTS_VIRTUAL_TABLE, null, initialValues); 
     } 

現在我需要刪除它:

public void removeTitle(String title) { 
      getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null); 
     } 

但我有一個例外:

android.database.sqlite.SQLiteException:沒有這樣的列:測試:,同時 編譯:DELETE FROM FTStitleslist WHERE suggest_text_1 =測試

上午我做錯了什麼?

回答

0

更改此:

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null); 

爲了這個(推薦):

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + " = ?", new String[]{title}); 

還是這個(不推薦):

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "= '" + title + "'", null);