Ho un database contenente un ID utente e una nota. L'utente non sa se c'è già una nota nel DB in modo che ne scriva uno e faccia clic sul pulsante "Invia". Voglio inserire questa nota se non v'è nota per l'ID utente o l'aggiornamento che nota già esistente userId:Android: c'è un modo migliore per inserire e/o aggiornare una voce del database?
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();
così, sono più o meno il tentativo di 'aggiornamento' una voce e se fallisco, allora tento per "inserirlo". Non conosco SQL molto bene, ma penserei che ci sarebbe un modo migliore. Grazie.
Non ha funzionato per me. Ho provato _getHelper(). GetWritableDatabase(). Replace (TABLE_NAME, null, values); _ Qualche suggerimento? –
È possibile ottenere questa funzionalità tramite 'ContentProvider' utilizzando il passaggio di un parametro aggiuntivo in' ContentValues'. Ho scritto un post sul blog qui: [SQLite INSERIRE O SOSTITUIRE attraverso ContentProvider | Buzzing Android] (http://www.buzzingandroid.com/2013/01/sqlite-insert-or-replace-through-contentprovider/) – JesperB