如何在android中使用id删除sqlite数据库中的行?

时间:2017-08-16 03:53:43

标签: android

我有一个包含sqlite数据库的应用程序和来自Mainactivity的联系人列表我在arraylist中添加了联系人并将其保存在sqlite数据库中并从sqlite数据库中获取相同内容。但问题是我想使用id从sqlite数据库中删除特定的行。我该怎么做

主要活动代码: -

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);



    DatabaseHandler db = new DatabaseHandler(this);



    /**

     * CRUD Operations

     * */

    // Inserting Contacts

    Log.d("Insert: ", "Inserting ..");

    db.addContact(new Contact("Ravi", "9100000000"));

    db.addContact(new Contact("Srinivas", "9199999999"));

    db.addContact(new Contact("Tommy", "9522222222"));

    db.addContact(new Contact("Karthik", "9533333333"));



    // Reading all contacts

    Log.d("Reading: ", "Reading all contacts..");

    List<Contact> contacts = db.getAllContacts();



    for (Contact cn : contacts) {

        String log = "Id: " + cn.getID() + " ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();

        // Writing Contacts to log

        Log.d("Name: ", log);

    }

}

用于删除联系人的特定功能sqlite数据库。

// Deleting single contact
public void deleteContact(Contact contact) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
            new String[] { String.valueOf(contact.getID()) });
    db.close();
}

1 个答案:

答案 0 :(得分:0)

您可以使用this帖子或以下方法从表格中删除。

public int delete(String tableName, String where) {
    SQLiteDatabase db = getWritableDB();
    int deletedVal = -1;
    try {
        deletedVal = db.delete(tableName, where, null);
    } catch (Exception e) {
        e.printStackTrace();
    }
    db.close();
    return deletedVal;
}

考虑到你有一个表列名称&#34; id&#34;,这就是你可以调用它的方法。

delete(tableName,"id=1")