我正在研究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或其他。
答案 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我只是想突出显示逻辑 - 你的实际表名,架构&逻辑可能不同。无论如何,尝试这个 - 它应该工作。实际工作应该遵循您的设计的所有数据库约束,结构和架构。