2011-04-07 3 views
0

J'essaie de mettre à jour une cellule dans une rangée d'une base de données. Mais le résultat finit toujours par 0, ce qui signifie qu'il n'y a pas de changement. Qu'est-ce que je fais mal?Problème Android SQlite

Le nom de la colonne est « Lire » et toutes les valeurs de cette colonne sont d'abord 0. Je dois mettre à jour la valeur de la colonne d'une ligne « Lire » en nombre entier 1.

DATABASE = openOrCreateDatabase("MAIN_DB", MODE_PRIVATE, null); 

    ContentValues contentValues = new ContentValues(); 
    contentValues.put("Read", new Integer(1)); 
    int result=0; 

    DATABASE.beginTransaction(); 

     result= DATABASE.update(databasename, contentValues, "id="+db_rowid, null); 
     DATABASE.setTransactionSuccessful(); 

     DATABASE.endTransaction(); 


    DATABASE.close(); 

La variable db_rowid = l'identifiant de ligne de la ligne que j'ai besoin d'éditer

+0

Je ne vois aucune erreur si databasename = « MAIN_DB », dbcolumnid est une valeur existante et l'identifiant de colonnes et Lire exitst dans le tableau ... – 2red13

Répondre

1

Je suppose que databasename est en fait le nom de la table qui contient votre ligne. Le dbcolumnid est en fait l'identifiant de ligne à mettre à jour. Et votre table contient la colonne id (est-ce la clé primaire?). Avec ces hypothèses, tout devrait fonctionner.

Enfin, vous pouvez essayer ceci:

result = DATABASE.update(databasename, contentValues, "id=?", new String[] {Long.toString(dbcolumnid)}); 
+0

oui, j'ai ajouté la colonne « _id », puis utilisé votre code et ça a marché. Merci. – roomtek