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 :

Enregistrement en base sqlite non effectué correctement


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 13
    Points
    13
    Par défaut Enregistrement en base sqlite non effectué correctement
    Bonjour à tous.

    Dans mon DAO j'ai la méthode suivante :
    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
     
     public Prospect createProspect(String nom, String prenom, String adresse,
    				String ville, String codePost, String email, String tel,
    				String commentaire, boolean prof, boolean contact) {
    	    ContentValues values = new ContentValues();
    	    values.put(BaseDeDonnees.COLUMN_NOM, nom);
    	    values.put(BaseDeDonnees.COLUMN_PRENOM, prenom);
    	    values.put(BaseDeDonnees.COLUMN_ADRESSE, adresse);
    	    values.put(BaseDeDonnees.COLUMN_VILLE, ville);
    	    values.put(BaseDeDonnees.COLUMN_CODE_POST, codePost);
    	    values.put(BaseDeDonnees.COLUMN_EMAIL, email);
    	    values.put(BaseDeDonnees.COLUMN_TEL, tel);
    	    values.put(BaseDeDonnees.COLUMN_COMM, commentaire);
    	    values.put(BaseDeDonnees.COLUMN_PROF, prof);
    	    values.put(BaseDeDonnees.COLUMN_CONTACT, contact);
     
    	    long insertId = database.insert(BaseDeDonnees.TABLE_PROSPECT, null,
    	        values);
    	    Cursor cursor = database.query(BaseDeDonnees.TABLE_PROSPECT,
    	        allColumns, BaseDeDonnees.COLUMN_ID + " = " + insertId, null,
    	        null, null, null);
    	    cursor.moveToFirst();
    	    Prospect newPr = cursorToProspect(cursor);
    	    cursor.close();
    	    return newPr;
    	  }
    Le values contient bien toutes les données que je souhaite enregistrer mais le newPr en retour n'a qu'un id et le nom comme données tous les autres champs étant null!
    D'où cela peut-il provenir. J'ai vraiment cherché partout.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    J'ai trouvé le soucis. ma méthode :
    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
    private Prospect cursorToProspect(Cursor cursor) {
    	    Prospect pr = new Prospect();
    	    pr.setId(cursor.getInt(0));
    	    pr.setNom(cursor.getString(1));
    	    pr.setPrenom(cursor.getString(2));
    	    pr.setAdresse(cursor.getString(3));
    	    pr.setVille(cursor.getString(4));
    	    pr.setCodePost(cursor.getString(5));
    	    pr.setEmail(cursor.getString(6));
    	    pr.setTel(cursor.getString(7));
    	    pr.setCommentaire(cursor.getString(8));
    	    pr.setProf(cursor.getInt(9) != 0);
    	    pr.setContact(cursor.getInt(10) != 0);
    	    return pr;
    	  }
    N'était pas complète. Il n'y avait que le nom et l'id de traité :p

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    En même temps... à moins d'avoir des triggers ou autres fonctions dans la database, l'interêt de relire des données qu'on vient d'y écrire est limité...

    Autant appeler les setters directement depuis createProspect (l'ID est dans insertId) non ?
    Ce sera deux fois plus rapide.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2014, 08h41
  2. Effacer un enregistrement dans base SQLite
    Par pierreduguet dans le forum Android
    Réponses: 4
    Dernier message: 10/11/2012, 12h03
  3. Réponses: 1
    Dernier message: 08/10/2012, 17h37
  4. [PDO] PDO.sqlite : update non effectué, mais pas d'erreur
    Par Yosko dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/04/2012, 16h55
  5. Réponses: 7
    Dernier message: 20/08/2009, 18h00

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