Salut,
Il faut récupérer le résultat avant de fermer le statement. Tu peux utiliser une structure try-with-resource pour te faciliter l'écriture :
1 2 3 4 5 6 7 8 9 10 11 12 13
| public String getFiliere() throws Exception{
String query = "SELECT code_filiere FROM filiere WHERE libele_filiere=?";
try ( PreparedStatement stat = cnx.prepareStatement(query) ) {
stat.setString(1, (String) cmbFil.getSelectedItem()); // au lieu d'aller directement chercher la sélection, tu devrais plutôt avoir un paramètre à ta méthode
rslt = stat.executeQuery();
return rslt.getString(1);
}catch(SQLException ex){
ex.printStackTrace();
return null; // retourne null en cas d'erreur
}
} |
Sinon tu peux aussi directement faire une requête qui récupère code et libellé pour construire la combo, utiliser une classe Filiere pour représenter les filières, par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Filiere {
private final String code;
private final String label;
public Filiere(String code, String label) {
this.code=code;
this.label=label;
}
public String getCode() {
return code;
}
public String getLabel() {
return label;
}
@Override
public String toString() {
return label;
}
} |
Et faire :
((Filiere)combo.getSelectedItem()).getCode()) );
Pour récupérer le code (sans avoir à faire une requête);
Partager