我只是在Android上学习SQL并遵循教程here。认为工作正常,在教程中提到。但我想使用更新和删除操作。为此,我使用此代码。 删除
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 :(得分: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())});