В Android почему не обновляется база данных SQLite? - PullRequest
1 голос
/ 12 ноября 2011

Я пытаюсь обновить строку, используя:

myDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null);

но я получаю следующую ошибку:

ОШИБКА / База данных (282): Ошибка обновления Людей_Имя = Боба с помощью ОБНОВЛЕНИЯ СЛУЖЕБНАЯ ПЛАТА SET Людей_Имя =? ГДЕ person_name = Bob

Я использую следующий код для попытки обновления:

public void updateEntry(String mName) throws SQLException {

    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_NAME, mName);
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null);

}

Я смотрел на другие ответы, которые кажутся похожими на эту проблему, но я не нашел чего-то определенного, что решало бы проблему, с которой я столкнулся. Похоже, что-то связано с переменными, но я могу быть совершенно не прав ..

Ответы [ 2 ]

5 голосов
/ 12 ноября 2011

Вы не заключаете свою строку в кавычки. Вам лучше делать что-то вроде этого:

ourDatabase.update(DATEABASE_TABLE, cvUpdate, KEY_NAME + "= ?", new String[]{mName});

когда вы используете вышеупомянутое, он автоматически заключает параметр в одинарные кавычки, если тип является строкой.

4 голосов
/ 12 ноября 2011

"people_name = Bob", вероятно, должно быть "people_name = 'Bob'", поэтому попробуйте:

ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "='" + mName + "'", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...