2014-06-24 65 views
0

我正在開發sqllite。我已經成功創建了數據庫,並且可以添加新項目。Android SQLite添加重複項目

// 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 
} 

此代碼工作完美,現在我要檢查,如果我還可以保存相同的信息,例如,如果我先救「你好Android的」,並在第二次嘗試保存相同的信息,我想要顯示例如:Toast消息或其他。

+0

到目前爲止你做了什麼? – Neeku

+0

你的數據庫設置如何? (create table sql語句)。數據庫是否強制插入重複數據? – RvdK

+0

@ user3742085:查看下面的答案。我希望它會有所幫助。 –

回答

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; 
    } 

然後每次插入調用此funcition或返回,如果存在不前,像這樣:

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" 
} 

ps的,我只是想要突出顯示邏輯 - 您的實際表名稱,架構&邏輯可能會有所不同。無論如何,試試這個 - 它應該工作。實際工作應該遵循設計的所有數據庫約束,結構和模式。