Мне сложно понять команду обновления для SQLite.
В моем примере я выполняю обновление базы данных, но если есть ошибка, я выдаю сообщение об ошибке. Если пользователь пытается обновить несуществующую запись, я не получаю сообщение об ошибке.
Вот мой код, сначала команда обновления, а затем мой вызов:
public long updateContact(String firstName, String lastName, String address, String city, String state,
int zipCode, long mobileNumber, long altNumber, String email) {
ContentValues contactInfo = new ContentValues();
contactInfo.put(KEY_FNAME, firstName);
contactInfo.put(KEY_LNAME, lastName);
contactInfo.put(KEY_ADDR, address);
contactInfo.put(KEY_CITY, city);
contactInfo.put(KEY_STATE, state);
contactInfo.put(KEY_ZIP, zipCode);
contactInfo.put(KEY_MOBILE, mobileNumber);
contactInfo.put(KEY_ALT, altNumber);
contactInfo.put(KEY_EMAIL, email);
String where = "FIRSTNAME = '" + firstName + "' AND LASTNAME = '" + lastName + "'";
return db.update(DATABASE_TABLE, contactInfo, where, null);
}
Звонок:
if (searchTerm.length() > 0) {
id = db.updateContact(fName, lName, address.getText().toString().trim(),
city.getText().toString().trim(), state.getSelectedItem().toString().trim(), Integer.parseInt(zip.getText().toString().trim()),
Long.valueOf(mobile.getText().toString().trim()), Long.valueOf(alternate.getText().toString().trim()),
email.getText().toString().trim());
if (id == -1) {
DisplayErrorDialog("I'm sorry, we can not update the contact with the present data.");
}
}
Обновление работает, когда я даю ему действительные данные. Но когда я даю ему неверные данные (имя, которого нет в базе данных), я не получаю соответствующее сообщение об ошибке.