如何使用多个键更新记录

时间:2010-05-15 15:33:03

标签: sql android

我在Android上尝试使用数据库应用 我想使用SQLiteDatabase 更新(...) 便捷方法来更新记录。
通常,对于单个键的WHERE子句,这是有效的。以下代码工作正常: -

values.put("testname", "Quiz1");  
mDB.update("Tests", values, "id=?", new String[]{"2"}); //this statement works

但是,我想更新表中具有两个键组合作为唯一标识符的列。我尝试了以下内容。这无异常执行,但没有更新。

values.put("score", 60);  
mDB.update("Results", values, "studentid=? AND testid=?", 
    new String[] { "2,1" }); // this statement does not work`

怎么做?

2 个答案:

答案 0 :(得分:4)

我不是Android或SQLite的专家,但我认为你的陈述应该是:

mDB.update("Results", values, "studentid=? AND testid=?", new String[] { "2","1" }); 

答案 1 :(得分:0)

使用以下代码:

  

values.put(“ score”,60);
  mDB.update(“ Results”,值,“ studentid =?AND testid =?”,       new String [] {“ 2,1”}); //此语句不起作用`

"2,1"仅是一个String对象,因此在更新之前,数据库管理系统将检查studentid="2,1"处是否存在记录,如果没有记录,则不会影响任何行。

如果我们要同时测试studentidtestid,则在String []数组内必须有两个值,例如:

values.put("score", 60);  
mDB.update("Results", values, "studentid=? AND testid=?", 
    new String[] { "2","1" });

studentid处将使用值2进行测试,在testid中将使用值1进行测试。这仅仅是为了帮助新读者理解它们之间的区别,为什么您的代码片段无效以及@jvenema的有效方式。