J'essaie de mettre à jour une ligne spécifique depuis un certain temps maintenant, et il semble qu'il existe deux façons de le faire. D'après ce que j'ai lu et essayé, vous pouvez simplement utiliser le:
execSQL(String sql)
méthode
ou la:
update(String table, ContentValues values, String whereClause, String[] whereArgs)
méthode.
(Faites-moi savoir si cela est incorrect car je suis nouveau sur Android et très nouveau sur SQL.)
Alors laissez-moi accéder à mon code réel.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
J'essaye d'accomplir ceci:
Mettez à jour Field1, Field2 et Field3 où la clé primaire (_id) est égale à 1.
Eclipse me donne une ligne rouge juste sous le mot «mise à jour» et me donne cette explication:
La méthode update (String, ContentValues, String, String []) dans le type SQLiteDatabase n'est pas applicable pour les arguments (String, String, String, null)
Je suppose que je n'attribue pas correctement les ContentValues. Est-ce que quelqu'un peut-il me montrer la bonne direction?
myDB.update(TableName, cv, "_id=?", new String[]{id})
. SQLite remplira automatiquement le quatrième paramètre dans le "?" dans le troisième paramètre, c'est-à-dire la clause WHERE. Si votre troisième paramètre contient n "?", Le quatrième paramètre doit être une chaîne [] de longueur nManière simple:
la source
execSQL()
des mises à jour ne fonctionnera pas. Lire execSQL () avec UPDATE ne se met pas à jour .Dans un premier temps, créez un objet ContentValues :
Ensuite, utilisez la méthode de mise à jour. Notez que le troisième argument est la clause where. Le "?" est un espace réservé. Il sera remplacé par le quatrième argument (id)
C'est la solution la plus propre pour mettre à jour une ligne spécifique.
la source
Ce code devrait corriger votre exemple:
la source
vous pouvez essayer ceci ...
la source
j'espère que cela vous aidera:
la source
Vous essayez cette méthode de mise à jour dans SQLite
la source
utilisez ce code dans votre DB `
pour la mise à jour dans votre sample.java utilisez ce code
la source
Peut essayer comme ceci:
la source
si votre ligne sqlite a un identifiant unique ou un autre équivalent, vous pouvez utiliser la clause where, comme ceci
la source
"where _id = 1"
. Le changement se reflète également dans ma question.Pour les mises à jour, vous devez appeler setTransactionSuccessfull pour que les modifications soient validées comme suit:
la source
// Voici un exemple de code simple pour la mise à jour
// Déclarez d'abord ceci
// initialise ce qui suit
// code de mise à jour
// mettre votre id au lieu du "point d'interrogation" est une fonction dans ma préférence partagée.
la source
la source
essayez juste de cette façon
la source
Méthode de mise à jour dans SQLite:
la source
la source
la source
donnez simplement rowId et le type de données qui seront mises à jour dans ContentValues.
public void updateStatus (String id, int status) {
SQLiteDatabase db = this.getWritableDatabase ();
ContentValues data = new ContentValues ();
data.put ("statut", statut);
db.update (TableName, data, "columnName" + "=" + id, null);
}
la source
Je vais démontrer avec un exemple complet
Créez votre base de données de cette façon
Ensuite, créez une classe pour faciliter CRUD -> Créer | Lire | Mettre à jour | Supprimer
Maintenant vient la magie
vous devez créer votre ProductsAdapter qui doit renvoyer un CursorAdapter
Donc, dans une activité, appelez simplement la fonction comme ceci
la source