Я новичок, я пытаюсь обновить запись некоторыми полями и ничего особенного. Я заметил! что на это можно ответить много раз, но ни один из предложенных ответов не работает, и я не знаю, где проверить мой код, чтобы найти решение. У меня есть следующий:Почему ни одно предлагаемое решение не работает, когда я пытаюсь обновить запись в SQLite Database?
public int updateUser(User user) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(U_ID, user.getId());
values.put(U_NAME, user.getName());
values.put(U_EMAIL, user.getEmail());
values.put(U_ZIP, user.getZip());
values.put(U_CREATED_AT, user.getCreated_at());
int res = db.update("login_user", values, "U_ID" + "=?", new String[] {String.valueOf(user.getId())});
return res;
}
Я попытался
int res = db.update("login_user", values, "U_ID" + " = ?", new String[] {String.valueOf(user.getId())});
int res = db.update("login_user", values, "U_ID" + "=?", new String[] {(UserId)});
int res = db.update(MYTABLE, values, U_ID + "=?", new String[] {String.valueOf(user.getId())});
Я увеличил свою версию базы данных, чтобы сделать его пустым я сохранил новый рекорд так
Моих данных не нулевые, но я получаю как res = 0, а не ожидаемое res = 1 и без ошибок
Что я делаю неправильно и где искать?
Когда ID это номер, почему вы сравнивая его против строки? –
Значит, вы должны сделать int res = db.update (MYTABLE, значения, U_ID + "=?", Новый Int [] {user.getId()}); – NoviceUser
Это не сработает, потому что 'update' принимает только строки в качестве параметров. Поэтому вы не должны использовать параметр для этого. –