0

我',尝试使用它来更新我的数据库。

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

我不知道是什么原因造成的

4

2 回答 2

0

您需要转义 of 的值,dd而不是将其直接嵌入到查询中。试试这个:

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

正如dbasemandd所说,用引号括起来在这种特殊情况下也可以工作,但如果dd碰巧包含引号字符本身("1-PC FROGS' LEGS"),则会失败。正如我在这里所做的那样,将其作为单独的参数提供通常更安全、更有效。

于 2012-07-04T08:32:26.087 回答
0

您需要将条件用引号括起来:

db1.update("list", values, "Description ='" + dd + "'", null);
于 2012-07-04T08:32:34.343 回答