#android #sqlite
#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
}
Этот код работает идеально, теперь я хочу проверить, могу ли я также сохранить ту же информацию, например, если я сначала сохраню «Привет, Android», а во второй раз попытаюсь сохранить ту же информацию, которую я хочу показать, например: всплывающее сообщение или другое.
Комментарии:
1. Что вы сделали до сих пор?
2. Как вы настраиваете БД? (инструкция create table sql). Принудительно ли база данных вставляет дублирующиеся данные?
3. @user3742085: проверьте мой ответ ниже. Я надеюсь, что это поможет.
Ответ №1:
Сначала создайте функцию, подобную этой:
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"
}
ps я просто хотел выделить логику — ваши фактические имена таблиц, схема и логика могут отличаться. В любом случае, попробуйте это — это должно сработать. Предполагается, что фактическая работа должна соответствовать всем ограничениям базы данных, структуре и схеме вашего дизайна.