正确使用带有'whereClause'参数的db.update

时间:2015-09-16 09:18:14

标签: java android sqlite sql-update

正如我所发现的那样,进行原始查询并不常用,并且不建议这样做:

db.execSQL("update userData set " + hero_whose_score_to_update + "="
+ second_player_score + " where name=" + "'" + getUsername2() + "'");

相反,我尝试使用db.update

ContentValues cv = new ContentValues();
cv.put(hero2_whose_score_to_update, second_player_score);
db.update("userData", cv, "where name = ", null);

我不知道如何写它,但我想要这个:

hero_whose_score_to_update是一个字符串 - “hero1_score”之一,......“hero6_score”;

second_player_score是int,它将是一些数字。

但是update()中的下两个参数是什么? whereClause和whereArgs。 我已经阅读了api for update(),但它仍然不清楚,一个例子会做得更好。

我怀疑我应该在whereClause中输入用户名,但它应该怎么样?

db.update("userData", cv, "where name = 'john'", null);

cv.put("hero3_score", 34) ;
db.update("userData", cv, "where name= ?", 'jonn') ;

1 个答案:

答案 0 :(得分:1)

whereClause是在原始SQL语句中的WHERE之后,但没有关键字WHERE。

whereArgs是一个字符串数组,因此您必须创建这样一个数组:

db.update("userData", cv, "name = ?", new String[]{ "jonn" });