2017-05-08 94 views
0

我在SQLite中有一個表,我想更新一些列。這裏是我的查詢:Android SQLite更新查詢錯誤

String UPDATE_INFORMATION = "UPDATE " + TABLE_USER + " SET " 
      + KEY_ADDRESS_OF_LIVING + " = " + addressOfLiving + ", " 
      + KEY_PHONE + " = " + phoneNumber + ", " 
      + KEY_IDNP + " = " + IDNP 
      + " WHERE " + KEY_ID + " = 1"; 

在調試值:

UPDATE user SET address = Efdsdfd, phone = 3797333, idnp = 2006002050245 WHERE id = 1 

和錯誤信息運行此查詢時,我得到的是:

android.database.sqlite.SQLiteException: no such column: Efdsdfd 

爲什麼它需要的「Efdsdfd 「作爲列名?

+0

試試這個UPDATE用戶SET'地址'='Efdsdfd','phone'='3797333','idnp'='2006002050245'WHERE'id'= 1 –

+1

@JineshFrancis ......你爲什麼要引用* * coulmn名稱** ?????? –

+0

無論如何,您可以使用參數化的SQL命令或查詢,而忘記引用。 –

回答

1
UPDATE user SET address = Efdsdfd, phone = 3797333, idnp = 2006002050245 WHERE id = 1 

上述查詢無效,因爲地址是VARCHAR或TEXT類型。您必須將TEXT值放在單引號內。

更新查詢字符串:

String UPDATE_INFORMATION = "UPDATE " + TABLE_USER + " SET " 
     + KEY_ADDRESS_OF_LIVING + " = '" + addressOfLiving + "', " 
     + KEY_PHONE + " = " + phoneNumber + ", " 
     + KEY_IDNP + " = " + IDNP 
     + " WHERE " + KEY_ID + " = 1"; 

結果將作爲

UPDATE user SET address = 'Efdsdfd', phone = 3797333, idnp = 2006002050245 WHERE id = 1 
+0

謝謝!這似乎解決了我的問題。我將重新安裝該應用程序,因爲我的sqlite中的一個列沒有創建,但最確定這是問題 –

+0

是的!我不得不等待10分鐘,直到我能接受答案。謝謝! –

+1

或者您可以使用參數化SQL命令或查詢並忘記引用。 –

2

你缺少簡單的報價。請記住,當您爲字符串列設置值時,值應該被簡單的引號包圍。 例如:

更新用戶設置地址= Efdsdfd

應該

更新用戶設置地址= 'Efdsdfd'

而且我的建議是,所有用於數據庫查詢的常量(簡單引號,逗號,數據類型等)應該放置爲常量i n一個DbHelper或常量文件,而不是寫入。

例如:

字符串UPDATE_INFORMATION = 「UPDATE」 + TABLE_USER + 「SET」 + KEY_ADDRESS_OF_LIVING + 「=」 + addressOfLiving + 「」

應該是:

字符串UPDATE_INFORMATION = 「UPDATE」 + TABLE_USER + 「SET」 + KEY_ADDRESS_OF_LIVING + 「=」 + Helper.SIMPLE_QUOTES + addressO fLiving + Helper.SIMPLE_QUOTES + Helper.COMMA

+0

感謝您的回覆。編寫一個簡單的引用來調用輔助類的值會更容易:)最好的解決方案是調用SQLite更新函數,而不是運行手動書面查詢,但是我爲此進行了測試 –

+1

@AndrewT 「最好的解決方案是調用SQLite更新函數」我完全同意你的看法。但我是誰來判斷)=)。有一個很好的測試 –

+0

每個人都有他的編寫代碼的風格:) –

2

你必須把單引號內的文本值。

+1

或者您可以使用參數化的SQL命令或查詢,而忘記引用。 –

+0

我只想看看如何運行查詢,因爲我將不得不執行使用查詢無法實現的多個操作。但對於這個查詢,你是完全正確的! –