Operation not allowed after ResultSet closed[Resolvido]
3 respostas
P
paty_trind
Esta ocorrendo este erro no meu codigo,estava pesquisando e descobri que deveria criar outro Statement que eu ja havia criado :(
alguém sabe me explicar o que tem de errado no meu codigo?!
o erro aponta para esta linha:
System.out.println("select atividade from nota where rc_aluno='"+ t0.getText() +"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");
meu codigo completo é:
privatevoidgeraTabela3(){try{Aluno1aluno;model=newAluno1TableModel();resultadoDisciplina=comando.executeQuery("select distinct disciplina from nota where rc_aluno='"+t0.getText()+"'");while(resultadoDisciplina.next()){aluno=newAluno1();aluno.setDisciplina(resultadoDisciplina.getString(1));resultadoModulo=comando.executeQuery("select distinct modulo from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"'");if(resultadoModulo.next()){aluno.setModulo(resultadoModulo.getString(1));System.out.println("select atividade from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");resultadoAtividade=comando.executeQuery("select atividade from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");if(resultadoAtividade.next()){aluno.setAtividade(resultadoAtividade.getString(1));}}model.addAluno(aluno);}table=newJTable(model);JScrollPanescroller=newJScrollPane(table);scroller.setVisible(true);scroller.setBounds(20,270,700,150);painel.add(scroller,null);}catch(SQLExceptionerro){erro.printStackTrace();}}
Alguém sabe onde está o erro?ou como posso resolver isso?
muito obrigada
:)
Esta ocorrendo este erro no meu codigo,estava pesquisando e descobri que deveria criar outro Statement que eu ja havia criado :(
alguém sabe me explicar o que tem de errado no meu codigo?!
o erro aponta para esta linha:
System.out.println("select atividade from nota where rc_aluno='"+ t0.getText() +"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");
meu codigo completo é:
privatevoidgeraTabela3(){try{Aluno1aluno;model=newAluno1TableModel();resultadoDisciplina=comando.executeQuery("select distinct disciplina from nota where rc_aluno='"+t0.getText()+"'");while(resultadoDisciplina.next()){aluno=newAluno1();aluno.setDisciplina(resultadoDisciplina.getString(1));resultadoModulo=comando.executeQuery("select distinct modulo from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"'");if(resultadoModulo.next()){aluno.setModulo(resultadoModulo.getString(1));System.out.println("select atividade from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");resultadoAtividade=comando.executeQuery("select atividade from nota where rc_aluno='"+t0.getText()+"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");if(resultadoAtividade.next()){aluno.setAtividade(resultadoAtividade.getString(1));}}model.addAluno(aluno);}table=newJTable(model);JScrollPanescroller=newJScrollPane(table);scroller.setVisible(true);scroller.setBounds(20,270,700,150);painel.add(scroller,null);}catch(SQLExceptionerro){erro.printStackTrace();}}
Alguém sabe onde está o erro?ou como posso resolver isso?
muito obrigada
:)
Bom dia paty_trind, vc pode postar o erro que acontece na sua SQL???
P
paty_trind
ola diegodtsa,
o erro é o seguinte
select distinct disciplina from nota where rc_aluno='5'
select distinct modulo from nota where rc_aluno='5' and disciplina='biologia'
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:794)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:838)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
at telaVisualizacaoDeNotas.geraTabela3(telaVisualizacaoDeNotas.java:329)
at telaVisualizacaoDeNotas.access$0(telaVisualizacaoDeNotas.java:288)
at telaVisualizacaoDeNotas$4.actionPerformed(telaVisualizacaoDeNotas.java:217)
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)
a linha 329 é System.out.println("select atividade from nota where rc_aluno='"+ t0.getText() +"' and disciplina='"+resultadoDisciplina.getString(1)+"' and modulo='"+resultadoModulo.getString(1)+"'");
obrigada pela ajuda
P
paty_trind
Consegui arrumar este erro o Visola me explicou o seguinte
o problema está no seguinte…
na linha 319 você usa um Statement para executar uma consulta…
enquanto está percorrendo o resultado desta consulta você executa outra consulta, na linha 325 usando o mesmo Statement.
Quando você faz isso, automaticamente fecha o primeiro ResultSet (resultadoDisciplina).
Porque cada statement só pode executar uma única consulta por vez.
Você vai precisar de outro Statement se quiser executar dois resultsets ao mesmo tempo.
Eu criei novos Statements e inicializei junto com o primeiro statement e agora esta funcionando!!