Android SQLite添加重复项

时间:2014-06-24 07:09:09

标签: android sqlite

我正在研究sqllite。我已成功创建数据库,我可以向其中添加新项目。

// Adding new contact
public void Add_Contact(Contact contact) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(KEY_Tittle, contact.getTitle()); // Contact title
    values.put(KEY_Description, contact.getDescription()); // Contact
                                                            // description

    values.put(KEY_Price, contact.getPrice()); // Contact price

    values.put(KEY_Image, contact.getImage()); // Contact image
    values.put(KEY_Counter, contact.getCounter()); // Contact counter
    // Inserting Row
    db.insert(TABLE_CONTACTS, null, values);

    Log.e("Table Result isss", String.valueOf(values));
    db.close(); // Closing database connection
}

这段代码工作正常,现在我想检查一下我是否也可以保存相同的信息,例如,如果我先保存" Hello Android"并且在第二次尝试保存相同的信息,我想显示例如:Toast message或其他。

1 个答案:

答案 0 :(得分:0)

首先制作一个这样的函数:

public boolean somethingExists(String x) {
        Cursor cursor = database.rawQuery("select 1 from " + TABLE_CONTACTS + " where KEY_Tittle like '%" + x
                + "%'", null);
        boolean exists = (cursor.getCount() > 0);
        cursor.close();
        return exists;
    }

然后在每次插入之前调用此函数返回(如果存在或不存在):

if (!somethingExists("hello world")) {
     //HERE DO INSERTION if it is not already in Table e.g like call AddContact function here for insertion etc
} else {
    //Display Toast message here "Record already exists"
}

p.s我只是想突出显示逻辑 - 你的实际表名,架构&逻辑可能不同。无论如何,尝试这个 - 它应该工作。实际工作应该遵循您的设计的所有数据库约束,结构和架构。