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

said_dias_01 103 Messages postés dimanche 20 mars 2005Date d'inscription 30 décembre 2017 Dernière intervention - 17 déc. 2009 à 09:49 - Dernière réponse : ali1best 6 Messages postés mercredi 20 janvier 2010Date d'inscription 24 août 2011 Dernière intervention
- 9 févr. 2011 à 16:34
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 ??!!!!!!!
Afficher la suite 

9 réponses

Répondre au sujet
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 20 déc. 2009 à 14:49
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de uhrand
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 17 déc. 2009 à 23:09
0
Utile
Quel est la valeur de l'index lors de l'exception? Je devine que c'est "ligne" qui dépasse 99.
Commenter la réponse de uhrand
said_dias_01 103 Messages postés dimanche 20 mars 2005Date d'inscription 30 décembre 2017 Dernière intervention - 18 déc. 2009 à 02:35
0
Utile
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
Commenter la réponse de said_dias_01
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 19 déc. 2009 à 14:48
0
Utile
> 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.
Commenter la réponse de uhrand
said_dias_01 103 Messages postés dimanche 20 mars 2005Date d'inscription 30 décembre 2017 Dernière intervention - 20 déc. 2009 à 01:25
0
Utile
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 () );
}
Commenter la réponse de said_dias_01
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 20 déc. 2009 à 04:23
0
Utile
Essaie de supprimer la ligne suivante:
System.out.println(rec.getString(1) + " " + rec.getString(2));
Commenter la réponse de uhrand
said_dias_01 103 Messages postés dimanche 20 mars 2005Date d'inscription 30 décembre 2017 Dernière intervention - 20 déc. 2009 à 14:32
0
Utile
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
Commenter la réponse de said_dias_01
said_dias_01 103 Messages postés dimanche 20 mars 2005Date d'inscription 30 décembre 2017 Dernière intervention - 20 déc. 2009 à 15:22
0
Utile
Merci de votre Aide
Commenter la réponse de said_dias_01
ali1best 6 Messages postés mercredi 20 janvier 2010Date d'inscription 24 août 2011 Dernière intervention - 9 févr. 2011 à 16:34
0
Utile
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
Commenter la réponse de ali1best

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.