IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

SQLite n'écrit ou ne lit pas


Sujet :

Android

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut SQLite n'écrit ou ne lit pas
    Bonjour.

    Pour stocké quelques données de référentiel j'ai implémenter un DAO en suivant un tutoriel.

    Voici mon DAO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package org.ae.dragon.poker.Db;
     
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
     
    /**
     * Created by Vincent on 21/07/2014.
     */
     
        public class ReferentielLongDAO extends DAOBase {
            public ReferentielLongDAO(Context pContext) {
                super(pContext);
            }
     
     
            public static final String TABLE_NAME = "referentiel_long";
            public static final String KEY = "CLE";
            public static final String VALEUR = "valeur";
     
            public static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" + KEY + " STRING, " + KEY + " INTEGER);";
     
            public static final String TABLE_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";
     
     
            /**
             * @param m le métier à ajouter à la base
             */
            public void ajouter(ReferentielLong m) {
                ContentValues value = new ContentValues();
                value.put(KEY, m.getCle());
                value.put(VALEUR, m.getValeur());
                mDb.insert(TABLE_NAME, null, value);
     
            }
     
     
            public void supprimer(String cle) {
     
                mDb.delete(TABLE_NAME, KEY + " = ?", new String[]{cle});
     
            }
     
     
            public void modifier(ReferentielLong m) {
                ContentValues value = new ContentValues();
                value.put(VALEUR, m.getValeur());
                mDb.update(TABLE_NAME, value, KEY + " = ?", new String[]{m.getCle()});
            }
     
     
            public ReferentielLong selectionner(String cle) {
                Cursor c = mDb.rawQuery("select " + KEY + "," + VALEUR + " from " + TABLE_NAME + " where valeur = ?", new String[]{cle});
     
                if (c.getCount() > 0) {
                    c.moveToFirst();
                    return new ReferentielLong(c.getString(1), c.getLong(2));
                } else
                    return null;
            }
        }
    J'ai beau faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    longDAO.ajouter(new ReferentielLong("UserId",client.getPlayer().getUserId()));
    quand je fait un selectionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    userId= longDAO.selectionner("UserId");
    je récupère toujours un null.

    Cordialement

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Trouvé, la sélection était incorrecte il fallait mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            public ReferentialLong select(String cle) {
                Cursor c = mDb.rawQuery("select " + KEY + "," + VALEUR + " from " + TABLE_NAME + " where "+KEY +" = ?", new String[]{cle});
     
                if (c.getCount() > 0) {
                    c.moveToFirst();
                    return new ReferentialLong(c.getString(0), c.getLong(1));
                } else
                    return null;
            }

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Je te conseil de faire la création des bases dans le ApplicationOpenHelper et ne faire que tes accès base de le DAO. ça fait du code plus propre selon moi et ensuite mettre toutes les méthodes des classes DAO en static

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon PC ne lit pas de dvd
    Par Alexandrebox dans le forum Périphériques
    Réponses: 8
    Dernier message: 17/01/2007, 15h04
  2. [Blend beta 1][VS Extension WPF CTP 11/06] VS ne lit pas le code généré par Blend
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 09/12/2006, 17h50
  3. [XHTML] IE ne lit pas mon document valide
    Par Invité4 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/10/2004, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo