bonjour,
voici mon code:
Le souci, c'est que ca me fait une erreur dans le second try!
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
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();
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:
Apparemment, l'erreur viendrait de Result2 => +Result.getInt(1)
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
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");} } }
avez-vous une idée pourquoi cela se produit??
merci d'avance
Partager