这是我的要求
query = ("UPDATE " + "DELIVERY_SLIP"
+ " SET DATELASTCHECK_SI = " + "'" + DATELASTCHECK_SI
+ "'" + " and " + "BOOL_SI = " + BOOL_SI + " WHERE "
+ "DELIVERY_SLIP.TITLE_SI" + " = " + "'"
+ currentDS.TITLE_SI + "'");
在调试器上我可以看到
UPDATE DELIVERY_SLIP SET DATELASTCHECK_SI = '2/12/1995' and BOOL_SI = 1 WHERE DELIVERY_SLIP.TITLE_SI = 'null.jpg'
null.jpg存在,它只是名字,
2/12/1995是函数参数的日期传递,= 1;也是参数的int传递。
我在选择表上犯了错误,但我不知道在哪里?
解决方案:
ContentValues initialValues = new ContentValues();
initialValues.put("_id", currentDS.getID());
initialValues.put("TITLE_SI", currentDS.getTitle());
initialValues.put("BOOL_SI", BOOL_SI);
initialValues.put("DATELASTCHECK_SI", DATELASTCHECK_SI);
db.update("DELIVERY_SLIP", initialValues, "_id" + " = ?",
new String[] { String.valueOf(currentDS._id) });
答案 0 :(得分:0)
尝试使用它,放置你的参数和表格和条件
ContentValues cv = new ContentValues();
cv.put("SMS", newSmsNumber);
cv.put("Voice", newVoiceNumber);
db.update("[table name]", cv, "ID=?", new String[]{Integer.toString(id)});
答案 1 :(得分:0)
只需对此请求使用SQLiteDatabase.update方法即可。
对于你的情况看起来像这个:
ContentValues values = new ContentValues();
values.put("DATELASTCHECK_SI", DATELASTCHECK_SI);
values.put("BOOL_SI", BOOL_SI);
db.update("DELIVERY_SLIP", values, "TITLE_SI=?", new String[]{String.valueOf( currentDS.TITLE_SI) });
答案 2 :(得分:0)
在UPDATE语句中,要设置的多个列必须用AND分隔,而不能用逗号分隔。
SET DATELASTCHECK_SI = '2/12/1995' and BOOL_SI = 1
被解释为将单列DATELASTCHECK_SI
设置为表达式'2/12/1995' and BOOL_SI = 1
的值,其中AND是布尔运算符;该表达式的最终值为0或1。
用逗号替换AND
,或者更好地使用像update
这样的辅助函数来格式化语句和值。