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

Signaler
Messages postés
103
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 décembre 2017
-
ali1best
Messages postés
1
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
24 août 2011
-
Quand j'utilise le code suivant ça marche bien
[b] ...
...
...
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));

}/b
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

[b]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;

}/b

Erreur : Index de descripteur non valide

DE QUEL INDEX IL PARLE ??!!!!!!!

9 réponses

Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Certains engins sql ne permettent pas la lecture répétée des mêmes colonnes. La solution c'est de sauvegarder les valeurs lues dans des variables et de lire ces variables par la suite.
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Quel est la valeur de l'index lors de l'exception? Je devine que c'est "ligne" qui dépasse 99.
Messages postés
103
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 décembre 2017

selon votre réponse j'ai modifier le code ,avant d'arriver au 99 je l'ai obligé de sortir de la boucle


while (rec. next ())

{
tab2dim[ligne][colone] = rec.getString (1) ;
tab2dim[ligne][colone+1] = rec.getString (2) ;

ligne+=1;

colone=0;
[b]
if (ligne<=50)
{
break;
}/b

}
Il reste même Erreur : Index de descripteur non valide
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
> Il reste même Erreur : Index de descripteur non valide
C'est quel type de message? Je ne connais pas cette formulation dans Java. Normalement, les messages Java indiquent plus précisément la source de l'erreur et même les lignes concernées dans le code source.
Messages postés
103
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 décembre 2017

merci d'abord pour la réponse ,

voila l'erreur complet :Erreur de données:[Microsoft][SQL Server Native Client 10.0]Index de descripteur non valide
en considération que Erreur de données c'est mon message perso dans la gestion d'exception
et voila une partie code:


private void afficher(){
Connection conn = null;
String teste = "SELECT Name, Adress FROM T_ville;";
try{
Class .forName ("sun.jdbc.odbc.JdbcOdbcDriver" );
Connection con =DriverManager .getConnection ("jdbc:odbc:db_jdb");
Statement inst =con. createStatement ();
String sql ="select * from t_ville" ;
ResultSet rec =inst. executeQuery (sql);
String tab2dim [][] = new String[99][99];
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;
System .out. println (rec. getString (1) + " " + rec.getString (2));
}
rec. close ();
}
catch (ClassNotFoundException e ){
System .out. println ("Pilote introuvable:" + e.getMessage () );
}
catch (SQLException e){
System .out. println ("Erreur de données:" + e.getMessage () );
}
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
Essaie de supprimer la ligne suivante:
System.out.println(rec.getString(1) + " " + rec.getString(2));
Messages postés
103
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 décembre 2017

Oui oui oui il fonctionne bien
Comment ça ?
J’utilise ce linge pour assurer que le résultat n’est pas null
Tu peut m’expliquer pourquoi ?

Et merci 1000 foi je soufre depuis une semaine sur les forums de java merci
Messages postés
103
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 décembre 2017

Merci de votre Aide
Messages postés
1
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
24 août 2011
13
Moi aussi je suis en train de developper une application en java...mais j'ai toujours cet erreur : java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Index de descripteur non valide mais la chose qui me cofuse est que il y'a des lignes qui fonctionnent mais d'autres non.
voila une partie du code :
PnlInfo.txtcodeArt.setText(res.getString("codeart"));// c bon

PnlInfo.txtVF.setText(res.getString("vf"));//c bon
PnlInfo.txtdesig1.setText(res.getString("desigart1"));//c bon
PnlInfo.txtdesig2.setText(res.getString("desigart2"));//c bon
PnlInfo.txtdtecrea.setText(""+res.getDate("datecreationnom"));//c bon
PnlInfo.txtdtemod.setText(""+res.getDate("datemajnom"));//c bon

PnlGen.txtCodeTypeArt.setText(codetypeart);//pas bon
PnlGen.txtTypeArt.setText(res.getString("typeart"));//pas bon
PnlGen.txtGroupe.setText(res.getString("codegroupeart"));//pas bon

il ya des autres lignes aussi qui ne fonctionnent pas a cause du meme erreur....



merci de me donner un peu d'aide
Best Of The Best