D'insertion ou de mise à jour dans SQlite et Android à l'aide de la base de données.query();
est-il un moyen de modifier ma fonction:
public categorie createCategoria(String categoria) {
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_NOME, categoria);
values.put(MySQLiteHelper.COLUMN_PREF, 0);
long insertId = database.insert(MySQLiteHelper.TABLE_CATEGORIE, null,
values);
Cursor cursor = database.query(MySQLiteHelper.TABLE_CATEGORIE,
allCategorieColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
categorie newCategoria = cursorToCategorie(cursor);
cursor.close();
return newCategoria;
}
c'est un raw insérer, je voudrais modifier cette fonction pour la rendre update ou insert en conséquence. je voudrais changer ce parce que je suis déjà à l'aide de cette fonction dans certains endroits, mais maintenant j'ai besoin de choisir si l'insertion d'une ligne ou de mise à jour (ou d'ignorer l'insert) une ligne avec le même COLUMN_NOME
. quelqu'un peut-il m'aider à faire cela?
je veux dire que je voudrais insérer une nouvelle ligne UNIQUEMENT si il n'y a pas un autre avec le même nom (comme d'habitude, vous le savez).
Vous devez vous connecter pour publier un commentaire.
on pourrait appeler
int nRowsEffected = database.update(...);
si il n'ya pas de lignes affectées par la mise à jour de la ligne n'existe pas (ou avez-vous modifié votreupdate()
!) par conséquent, vous devez appelerdatabase.insert(...)
. bien sûr, si nRowsEffected > 0, alors vous êtes fait.Vous pouvez utiliser insertWithOnConflict() si vous voulez insérer ou mettre à jour, en fonction de savoir si le document existe ou pas:
ContentValues
. Cela peut se produire dans les cas où les Api web de retour partiel des objets (je suis confronté à ce problème moi-même, aujourd'hui).Vous pouvez utiliser execSQL et l'utilisation d'INSÉRER OU REMPLACER
Tout d'abord vous devez écrire une fonction qui est de vérifier si
id
est existe, en particulier, Table:Vous devez passer
table_name
etid
dans que commeEspère qu'il vous aide à vous.