Sqlite请求语法Android

时间:2014-07-22 10:14:15

标签: android sqlite

这是我的要求

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) });

3 个答案:

答案 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这样的辅助函数来格式化语句和值。