Как обновить запись несколькими ключами - PullRequest
3 голосов
/ 15 мая 2010

Я пытаюсь использовать приложение базы данных на Android.
Я хочу использовать вспомогательный метод SQLiteDatabase update (...) для обновления записи.
Обычно для предложения 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 ]

4 голосов
/ 15 мая 2010

Я не эксперт по Android или SQLite, но я думаю, что ваше утверждение должно быть:

mDB.update("Results", values, "studentid=? AND testid=?", new String[] { "2","1" }); 
0 голосов
/ 03 ноября 2018

С этим кодом:

values.put («оценка», 60);
mDB.update («Результаты», значения, «studentid =? AND testid =?», новая строка [] {"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 one сработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...