bonjour, svp aidez moi j'ai un problème dans mon application lors de dernier classe qui affiche le résultat aidez moi car c'est mon PFE et j'ai pas du temps et merci d'avance
c'est le code source de mon classe et lorsque j'exécute mon application et j'arrive à cette étape il m'affiche ce message "Operation not allowed after ResultSet closed"
jButton3.setText("Afficher la liste des ports critiques ouverts");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
port_crit_ouvert(evt);
}
});
private void port_crit_ouvert(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_port_crit_ouvert
String port_crit[][] = new String[600][600];
String resultat[][] = new String[600][600];
String menace[][] = new String[600][600];
String requete="SELECT * FROM port_critique";
String requete2="SELECT Num_port,Application,Resultat FROM resultat";
String requete3="INSERT INTO menace VALUES(?,?,?,NOW())";
String requete4="SELECT Num_port FROM menace";
String requete5="DELETE FROM menace WHERE Resultat = "fermé"";
Ou se trouve ton erreur, quelle ligne, peux tu la mettre en rouge. En gros, tu dois faire appel a une resultSet que tu as fermé. Tu peux tenter avec un try/catch
c'est la liste de tous les erreurs qu'eclipse m'en affiche lors de l'exécution de cette classe. Svp aidez moi c'est urgent
java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:795)
at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7146)
at package_GUI.Affiche_resulat.port_crit_ouvert(Affiche_resulat.java:219)
at package_GUI.Affiche_resulat.access$2(Affiche_resulat.java:135)
at package_GUI.Affiche_resulat$3.actionPerformed(Affiche_resulat.java:73)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Bonjour,
ton problème est que tu exécute d'abord tout les resulSet et tu les parcours par la suite. hors dans ce cas le premier resulset fermé, ferme aussi tout les suivants (je ne sais pas si c'est exacte).
j'ai aussi eu ce problème
comment j'ai fait :
je fais un execute query je parcours
puis je declare un autre resultset, j'exécute la requête, je le parcours, ainsi de suite jusqu'au dernier resulset.
c'est peut être tard mais ça peut aider un autre.
Par défaut, un seul objet ResultSet par objet Statement peut être ouvert simultanément. Par conséquent, si la lecture d'un objet ResultSet est entrelacée avec la lecture d'un autre, chacun d'entre eux doit avoir été généré par différents objets Statement. Toutes les méthodes d'exécution de l'interface Statement ferment implicitement l'objet ResultSet actuel d'une déclaration, s'il en existe une ouverte.