where子句中的多个列给出了语法错误

时间:2014-05-09 12:56:36

标签: android sql-update android-sqlite

我在更新sqlite中db.update的where子句中包含多个列的表时遇到问题。

以下是我尝试但未接受并显示语法错误的内容。

db.getWritableDatabase().update(tablename, update((buy+dupbuy)), (column2+"=? and"+ column3+"=?"),(new String[] {getdate}+" and"+new String[] {stockname}));

在上面的查询中

  1. 第一个参数是要更新的表名。
  2. 第二个参数是要更新的值,它将指向另一个类更新方法,其中我写了更新表的内容值
  3. 主要的三分之一是我需要在where子句中传递的参数。
  4. 但是语法错误

    The method update(String, ContentValues, String, String[]) in the type SQLiteDatabase is not applicable for the arguments (String, ContentValues, String, String)

    请帮我在where子句中声明多个列。

    感谢您的时间。

2 个答案:

答案 0 :(得分:1)

更改拉伸代码:

db.getWritableDatabase().update(tablename, update((buy+dupbuy)), (column2+"=? and"+ column3+"=?"),(new String[] {getdate}+" and"+new String[] {stockname}));

db.getWritableDatabase().update( tablename, update(buy+dupbuy), column2 + " = ? and " + column3 + " = ?", new String[]{ getdate, stockname } );

答案 1 :(得分:1)

尝试更改

db.getWritableDatabase().update(tablename, update((buy+dupbuy)), (column2+"=? and"+ column3+"=?"),(new String[] {getdate}+" and"+new String[] {stockname}));

db.getWritableDatabase().update(tablename, update((buy+dupbuy)), (column2+"=? and "+ column3+"=?"),(new String[] {getdate,stockname}));

"and"子句中的WHERE之后添加空格,您需要在String[]参数中传递String而不是whereArgs。目前您正在传递String