2014-02-11 68 views
0

我剛剛在Android上學習SQL並遵循教程here。認爲在教程中提到的工作很好。但我想使用更新和刪除操作。爲此,我使用此代碼。 刪除Android中的CRUD操作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); 

而這種代碼更新所有聯繫人的數據庫「更新名稱」。但是,我想只更新ID爲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

'+「+?」'<=錯字? – Selvin

回答

1

在​​方法改變:

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

嗨,在Android平臺的CRUD操作這個培訓網站:keikis.org/academy/es/android-index/androd-base-final-projec t。 - 宙斯Monolitics昨天 –