erreur avec try dans un autre try
bonjour,
voici mon code:
Code:
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 27 28 29
|
Annuaire AN = new Annuaire(); // instanciation d'un annuaire
SQL base;
ResultSet Result;
ResultSet Result2;
base = new SQL();
base.connecterBD("BDDannuaire");
try{
Result = base.execReqSelection("SELECT * FROM Contact");
while (Result.next()){
Entreprise EN = new Entreprise(Result.getInt(1),Result.getString(2),Result.getString(3),Result.getString(4),Result.getInt(5),Result.getString(6),Result.getString(7),Result.getInt(8),Result.getString(9));
AN.AjouterContact(EN);
try{
System.out.println("test");
Result2 = base.execReqSelection("SELECT * FROM Telephone WHERE num_Contact="+Result.getInt(1));
System.out.println("test2");
while(Result2.next()){
System.out.println(Result2.getString(2)+Result2.getString(3));
Telephone Tel = new Telephone(Result2.getString(2),Result2.getString(3));
EN.AjouterTel(Tel);
}
}
catch (Exception e){ System.out.println("Exception telephone");}
}
}
catch (Exception e){ System.out.println("Exception contact");}
base.fermerConnexionBD(); |
Le souci, c'est que ca me fait une erreur dans le second try!
Lorsque j'enleve le second try avec ce qu'il contient, cela fonctionne bien.
J'ai également essayer de mettre ce qu'il y a dans le second try dans le premier mais ca a fait l'erreur qu'il y a dans le catch.
au faite, la classe qui contient les connexion à la base de donnée est:
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
package Annu;
import java.sql.*;
public class SQL {
Connection cnx;
public SQL(){cnx=null;}
public void connecterBD(String nomOdbcBD){
//connexion à la base de données à partir d'une source Odbc
String url="jdbc:odbc:"+nomOdbcBD;//BDDannuaire
//try permet de lancer la connexion
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cnx = DriverManager.getConnection(url,"","");
}
//si la connexion echoue, un message d'erreur est affiché
catch(Exception e){System.out.println("Echec lors de la connexion");}
}
public ResultSet execReqSelection(String req){
ResultSet resultatReq = null; //curseur qui contiendra le resultat de la requete
try{
Statement requete=cnx.createStatement();
resultatReq = requete.executeQuery(req);
}
catch(Exception e){System.out.println("Echec de la requete: "+req);}
return resultatReq;
}
public int execReqMaj(String req){
int nbmaj =0;
try{
Statement s= cnx.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
nbmaj = s.executeUpdate(req);
s.close();
}
catch(Exception er){er.printStackTrace();
System.out.println("Erreur ajout de la requete: "+req);}
return nbmaj;
}
public void fermerConnexionBD(){
try{
cnx.close();}
catch (Exception e){System.out.println("Echec sur la fermeture");}
}
} |
Apparemment, l'erreur viendrait de Result2 => +Result.getInt(1)
avez-vous une idée pourquoi cela se produit??
merci d'avance