Я просто изучаю SQL на Android и следую учебнику here. Думает, прекрасно работают, о чем говорится в учебнике. Но я хочу использовать операцию обновления и удаления. Для этого я использую этот код. Для удаленияCRUD операции в Android sql
Contact contact = (Contact)db.getContact(2);
db.deleteContact(contact);
Log.d("Delete", "Contact Deleted");
Этой функции удалить все контакты из таблицы контактов. В то время как я хочу, чтобы удалить только контакт, имеющий ID = 1
Для обновления
Log.d("Update Contact", "Updating Contact...");
Contact contact = (Contact)db.getContact(2);
contact.setName("Updated Name");
contact.setPhoneNumber("333444");
db.updateContact(contact);
И этот код обновляет все контакты в базе данных с «обновленным именем». Однако я хочу обновить только контакт с идентификатором 2. Я делаю что-то неправильно.
Удаление функции в DatabaseHandler.java
public void deleteContact(Contact contact){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID+"+?", new String[]{String.valueOf(contact.getID())});
db.close();
}
и обновление функций является
public int updateContact(Contact contact){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME,contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
return db.update(TABLE_CONTACTS, values, KEY_ID+"+?", new String [] String.valueOf(contact.getID())});
}
Вы можете оставить свой updateContact и методы deleteContact? – Giacomoni
@ giacomoni Вопрос отредактирован и добавлен. – MajorGeek
'+" +? "' <= Typo? – Selvin