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 :

Selection dans une base de données sqlite


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Points : 31
    Points
    31
    Par défaut Selection dans une base de données sqlite
    Bonjour tout le monde,
    Je debute avec android depuis quelques semaines et j'ai un petit souci avec la selection d'un enregistrement dans ma bdd.
    (L'insertion marche très bien.)

    Quelques informtions sur ma bdd:
    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
     
    final static String QUIZ_ID = "id";
        final static String QUIZ_QUESTION = "question";
        final static String QUIZ_REPONSE = "reponse";
        final static String QUIZ_OPTION1 = "option1";
        final static String QUIZ_OPTION2 = "option2";
        final static String QUIZ_OPTION3 = "option3";
        final static String QUIZ_ETAT = "etat";
     
     final static String QUIZ_CREATE_TABLE = "CREATE TABLE "+QUIZ_TABLE_NAME+ "( "
                +QUIZ_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "
                +QUIZ_QUESTION+ " TEXT, "
                +QUIZ_REPONSE+ " TEXT, "
                +QUIZ_OPTION1+ " TEXT, "
                +QUIZ_OPTION2+ " TEXT, "
                +QUIZ_OPTION3+ " TEXT, "
                +QUIZ_ETAT+ " INTEGER NOT NULL );";
    Au juste quand j'essaie de faire une selection dans ma base en fonction de l'id (clé primaire autoincrement) j'ai toujous eu une erreur
    le code:
    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
     
     public Quiz selection(int id)
        {
            Quiz info = null;
            Cursor cursor = db.rawQuery("SELECT * FROM "+QUIZ_TABLE_NAME+ " WHERE " +QUIZ_ID+ " = ?", new String[] {"" +id});
     
            String quest = "";
            String rep = "";
            String opt1 ="";
            String opt2 = "";
            String opt3 = "";
     
            cursor.moveToFirst();
            {
                Long key = cursor.getLong(0);
                quest = cursor.getString(1);
                rep = cursor.getString(2);
                opt1 = cursor.getString(3);
                opt2 = cursor.getString(4);
                opt3 = cursor.getString(5);
            }
            info = new Quiz(quest, rep, opt1, opt2, opt3);
            cursor.close();
            return info;
        }
    quand j'accède a la bdd dans mon code java, ça me ramène une erreure du genre:
    Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

    Tout marche nickel si je supprimer la clause WHERE

    Merci d'avance pour vos reponses

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Essayes comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Cursor cursor = db.query(QUIZ_TABLE_NAME, // table
    				null, // column names
    				QUIZ_ID + "= ?", // selections
    				new String[] { String.valueOf(id) }, // selections args
    				null, // group by
    				null, // having
    				null,); // order by
    le moveToFirst te renvoie un boolean pour te dire si il y es arrivé ou pas, en gros si il existe un élément ou pas dans la réponse tu devrais le considérer pour ne pas arriver à cette exception
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Bonjour Feanorin,
    Merci de m'avoir repondu si vite.
    Enfin j'ai ton code en y remplacant le "cursor.moveToFirst()" par "While(cursor.moveToNext())"
    mais ça ne marche toujours pas

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Tu es sur que l'id que tu cherches et présent en base de donnée ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    oui j'ai une autre methode qui me renvoie le nombre d'enregistrements et là ça marche nickel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     public int nombreQuestions()
        {
            Cursor cursor = db.rawQuery("SELECT "+QUIZ_ID+" FROM "+QUIZ_TABLE_NAME, null);
            int cpt = 0;
            while(cursor.moveToNext())
                cpt++;
            return cpt;
        }

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    C'est pas ce que je voulais dire.

    Est ce que par cette méthode tu as bien l'id dans la liste des éléments du cursor que tu recherches dans la première ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. Gérer dess images dans une base de données SQLite
    Par noftal dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/06/2015, 11h55
  2. [POO] POO et SELECT dans une base de données
    Par SeigneurMartin dans le forum Langage
    Réponses: 5
    Dernier message: 15/01/2009, 16h16
  3. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  4. [SYBASE]Libérer espace libre dans une base de données ?
    Par le_parrain dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 09h36
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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