3

当我通过帐户登录时,我正在从服务器获取联系信息。我将这些信息存储在 SQLite 中,当用户第二次登录时,我不想将相同的重复联系人再次插入 SQLite。

我试过这样但不工作

boolean exist= contact_db.CheckItem(entry.getUser());               
if(!exist) {
 // insert
}else {
 // don't insert
}

DB类中的代码

Cursor mCursor = database.query(ContactsDB.TABLE_CONTACTS, allColumns,
                    ContactsDB.CONTACT_USERID + "= ' " + name +"'" , null, null, null, null);
    if (mCursor != null && mCursor.moveToFirst()) 
        return false;
    else return true;

将联系人插入数据库时​​如何避免重复?

4

2 回答 2

6

更好的是使用关键字UNIQUE为该列创建索引。UNIQUE可以找到一个示例here,也可以找到一个更简单的示例here

创建表后,您必须为行创建一个UNIQUE INDEX

CREATE UNIQUE INDEX idx_something ON Table_name 
                                          (column_name_1, column_name_2,....);
于 2012-08-21T09:47:46.587 回答
2

检查数据库以获取信息。如果数据库中存在数据,如果不将信息插入数据库,则不执行任何操作

于 2012-08-21T09:43:43.813 回答