2012-07-04 90 views
0

I',試圖用這個更新我的數據庫。更新sqlite數據庫時出現語法錯誤

String dd = "1-PC CHICKEN & RICE"; 
SQLiteDatabase db2 = openOrCreateDatabase("order",MODE_PRIVATE,null); 
ContentValues values = new ContentValues(); 
values.put("Description",(((TextView) findViewById(R.id.etoriginal)).getText().toString())); 
db1.update("list", values, "Description ="+ dd ,null); 

但我在我的日誌貓得到這個錯誤

07-04 16:20:00.659: E/AndroidRuntime(21504): android.database.sqlite.SQLiteException: near "CHICKEN": syntax error: , while compiling: UPDATE list SET Image=? WHERE Description =1-PC CHICKEN & RICE 

我想不出是什麼原因造成這種

+0

對不起,我是新來的StackOverflow,我不能看到如何接受的答案。你能告訴我如何? –

+0

tnx的信息。 –

回答

0

你需要用條件引號:

db1.update("list", values, "Description ='" + dd + "'", null); 
+0

tnx它的工作! TNX! –

+0

請注意,這不是最安全的解決方案,因爲如果'dd'包含引號,它將會失敗。 –

0

你需要逃避的dd價值,而不是直接將其嵌入在你的查詢中。試試這個:

db1.update("list", values, "Description = ?", new String[] { dd }); 

引號包裝紙dd,如dbaseman說,也將在這個特殊的情況下工作,但如果dd恰好包含引號本身("1-PC FROGS' LEGS")將失敗。作爲一個單獨的參數提供它,正如我在這裏所做的那樣,通常更安全,更高效。

相關問題