我在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`
怎么做?
答案 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"
处是否存在记录,如果没有记录,则不会影响任何行。
如果我们要同时测试studentid
和testid
,则在String []数组内必须有两个值,例如:
values.put("score", 60);
mDB.update("Results", values, "studentid=? AND testid=?",
new String[] { "2","1" });
在studentid
处将使用值2
进行测试,在testid
中将使用值1
进行测试。这仅仅是为了帮助新读者理解它们之间的区别,为什么您的代码片段无效以及@jvenema的有效方式。