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

JDBC Java Discussion :

Résultat d'une requête dans un tableau 2D


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Résultat d'une requête dans un tableau 2D
    Quand j'utilise le code suivant ça marche bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Statement inst =con. createStatement ();
    String sql ="select * from t_ville" ;
    ResultSet rec =inst. executeQuery (sql);
     
    while (rec. next ()){
         System .out. println (rec. getString (1) + " " + rec.getString (2));
    }
    Résultat
    ----------------
    1 Paris
    2 Madrid
    3 Rome
    4 xxxx

    Je veux de remplir un tableau de 2D a partir de la requête j'ai utilisé le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String tab2dim [][] = new String[99][2];
     
    int ligne=0;
    int colone=0;
     
    while (rec. next ()){
         tab2dim[ligne][colone] = rec.getString (1) ;
         tab2dim[ligne][colone+1] = rec.getString (2) ;
     
         ligne+=1;
     
         colone=0;
    }
    Erreur : Index de descripteur non valide

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Tiens, ce lien peut d'aider
    http://www.developpez.net/forums/d71...ur-non-valide/

    En gros :
    -Ne mets pas * dans tes requêtes
    -Utilise des preparedStatement
    -Essaye de compiler à la main pour être sur que sa compile bien
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Points : 149
    Points
    149
    Par défaut
    N'utilise pas une position pour les getString parce que tu n'as pas de PrepareStatement.

    Supposons que le nom de tes colonnes soit "Numero" et "Ville", voici comment tu dois coder

    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
     
    Statement inst =con. createStatement ();
    String[][] tab2dim  = new String[99][2];
    String sql ="select * from t_ville" ;
    ResultSet rec =inst. executeQuery (sql);
    int ligne=0;
    int colone=0;
     
    while (rec. next ())
    {
         tab2dim[ligne][colone++] = rec.getString ("Numero") ;
         tab2dim[ligne][colone ] = rec.getString ("Ville") ;
         ligne++;
         colone=0;
    }

  4. #4
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par GérardMartinelli Voir le message
    N'utilise pas une position pour les getString parce que tu n'as pas de PrepareStatement.

    Supposons que le nom de tes colonnes soit "Numero" et "Ville", voici comment tu dois coder

    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
     
    Statement inst =con. createStatement ();
    String[][] tab2dim  = new String[99][2];
    String sql ="select * from t_ville" ;
    ResultSet rec =inst. executeQuery (sql);
    int ligne=0;
    int colone=0;
     
    while (rec. next ())
    {
         tab2dim[ligne][colone++] = rec.getString ("Numero") ;
         tab2dim[ligne][colone ] = rec.getString ("Ville") ;
         ligne++;
         colone=0;
    }
    Moi j'ai eu le problème que dans mon resultset les nom de mes colonnes été null (avec un BDD MySql), du coup pour pas faire d erreur j'ai specifié les noms de mes colonnes dans la requete et j y accede avec la position.
    Autant dire que c'est particulierement contraignant, surtout quand la table a 40 colonnes...
    La javaDoc est mon amie, elle est la tienne aussi!

Discussions similaires

  1. [MySQL] récupérer le résultat d'une requête dans un tableau
    Par faty2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2007, 16h22
  2. Réponses: 2
    Dernier message: 27/03/2007, 01h19
  3. [MySQL] Résultat d'une requête dans un tableau
    Par olivier94 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 22/03/2007, 21h03
  4. [MySQL] Afficher le résultat d'une requête dans un tableau
    Par magobouli dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/02/2007, 14h41
  5. Réponses: 12
    Dernier message: 09/01/2007, 19h04

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