2014-02-11 2 views
0

Я просто изучаю 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())}); 
    } 
+0

Вы можете оставить свой updateContact и методы deleteContact? – Giacomoni

+0

@ giacomoni Вопрос отредактирован и добавлен. – MajorGeek

+0

'+" +? "' <= Typo? – Selvin

ответ

1

в вашем изменении deleteContact метода:

db.delete(TABLE_CONTACTS, KEY_ID+"+?" 

к:

db.delete(TABLE_CONTACTS, KEY_ID+"=?" 

и в вашем изменении updateContact:

return db.update(TABLE_CONTACTS, values, KEY_ID+"+?", new String [] String.valueOf(contact.getID())}); 

к:

return db.update(TABLE_CONTACTS, values, KEY_ID+"=?", new String []{ String.valueOf(contact.getID())}); 
+0

Привет, для операций CRUD в Android Платформа этого учебного сайта: keikis.org/academy/es/android-index/androd-base-final-projec t. - Монолитика Зевса вчера –

Смежные вопросы