Android:gibt es einen besseren Weg, um insert und/oder update einen Datenbank-Eintrag?
Ich habe eine Datenbank mit einer Benutzer-id und einen Hinweis. Der Benutzer weiß nicht, ob es bereits einen Hinweis in der DB, so schreiben Sie sich ein und klicken Sie auf die Schaltfläche "Senden". Ich möchte einfügen, dieser Hinweis, wenn es gibt keinen Hinweis für die Benutzer-id oder das update userId bereits vorhandene Hinweis:
notesDb.open();
boolean updateResult = notesDb.updateMessage(
userId,
details_notes_input.getText().toString());
if(updateResult == true) {
Log.d("databaseTester", "Updated entry into table");
} else {
Log.d("databaseTester", "FAILED to update entry into table");
long insertResult = notesDb.insertMessage(
userId,
details_notes_input.getText().toString());
if(insertResult == -1){
Log.d("databaseTester", "Failed to insert entry into table");
} else {
Log.d("databaseTester", "Inserted entry into table");
}
}
notesDb.close();
So, ich bin ziemlich viel versucht, um 'update' ein Eintrag und wenn ich nicht dann ich Versuch 'einfügen' es. Ich weiß nicht, SQL sehr gut, aber ich würde denken, es wäre ein besserer Weg. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie Sie könnte verwenden sqlite ist ERSETZEN um dieses problem zu lösen, mit
SQLiteDatabase.replace()
.ContentProvider
mittels übergabe eines zusätzlichen Parameters in IhremContentValues
. Ich schrieb einen blog-post darüber hier: SQLite EINFÜGEN ODER ERSETZEN durch ContentProvider | Brummt AndroidKönnen Sie fangen eine Einschränkung Ausnahme startete im Fall der vorherigen ID Existenz und dann zu aktualisieren.
Versuchen, diese
result = db.insertWithOnConflict("tablename ", null, Lebenslauf, -1);