Android sql中的CRUD操作

时间:2014-02-11 11:24:20

标签: android sql android-sqlite crud

我只是在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())});
    }

1 个答案:

答案 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())});