SoloCodigo
Programación General => Java => Mensaje iniciado por: laura_mg en Lunes 19 de Noviembre de 2007, 11:30
-
Hola, mi problema es el siguiente:
Estoy haciendo una aplicación que accede a una base de datos MySQL, pero cuando ejecuto un trozo de código me da el error Operation not allowed after ResultSet closed
El código donde me da este error es el siguiente:
rs = stm.executeQuery("SELECT * FROM gastos2 WHERE idPresu="+idPresupuesto+";");
while(rs.next()){
int idGastos = rs.getInt("id");
int partidaId = rs.getInt("partida");
double costeUnitario = rs.getDouble("costeUnitario");
int unidades = rs.getInt("unidades");
int hito = rs.getInt("hito");
rs2 = stm.executeQuery("SELECT descripcion FROM partidas WHERE id="+partidaId+";");
while(rs2.next()){
for(int i=0; i<mmt.getRowCount(); i++){
if(mmt.getValueAt(i,0).toString().trim().equals(rs2.getString("descripcion").trim())){
mmt.setValueAt((float)(costeUnitario*unidades),i,hito);
}
}
}
rs2.close();
}//while(rs.next());
rs.close();
Si alguien sabe porqué me está pasando, le agradecería su ayuda.
Muchas gracias y un saludo.
-
rs = stm.executeQuery("SELECT * FROM gastos2 WHERE idPresu="+idPresupuesto+";");
Intenta quitarle el punto y coma que está después de "idPresupuesto" al final del query :)
-
No, ese no es el error.
Según la base de datos que utilizo, necesito ponerle ; al final de cada sentencia.
-
Intenta quitar estas líneas:
rs2.close();
rs.close();
-
revisa el orden de las acciones... y sobre todo cuando cierras los resulset porque despues de esas sentencias estas tratando de hacer algo mas <_<
-
Tiene que ver con el orden al parecer... a mi me sucedió lo mismo... revisa los ResultSet...
Por ejemplo:
conexion con = new conexion("localhost", "agendaestudiante", "root", "");
Statement s1,s2,s3;
s1 = con.conexion.createStatement();
ResultSet R =null;
R = s1.executeQuery("Select * from Ramo");
while (R.next()) {
Cbx_Ramo.addItem(R.getObject("Ramo_Nombre"));
}
s2 = con.conexion.createStatement();
ResultSet R2 =null;
R2 = s2.executeQuery("Select * from profesor");
while(R2.next()){
Cbx_Profesor.addItem(R2.getObject("Prof_Nombre"));
String profesor=R2.absolute(Cbx_Profesor.getSelectedIndex()+1);
}
s3 = con.conexion.createStatement();
ResultSet R3 =null;
R3 = s3.executeQuery("Select * from Sala");
while(R3.next()){
Cbx_Sala.addItem(R3.getObject("Sala_Nombre"));
}