Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] java.sql.SQLException: ResultSet is closed

Estas en el tema de java.sql.SQLException: ResultSet is closed en el foro de Java en Foros del Web. Hola estimados, tengo un problema que no he podido solucionar hasta el dia de hoy. tengo en mi aplicacion un boton buscar, el cual al ...
  #1 (permalink)  
Antiguo 04/01/2016, 19:08
 
Fecha de Ingreso: junio-2015
Mensajes: 6
Antigüedad: 8 años, 10 meses
Puntos: 0
java.sql.SQLException: ResultSet is closed

Hola estimados, tengo un problema que no he podido solucionar hasta el dia de hoy.

tengo en mi aplicacion un boton buscar, el cual al ingresar un rut (de un cliente) guarda los datos en un ResultSet, luego relleno los textField correspondiente a los datos. El problema es que al poner un rut valido, se me completan todos los TextField, menos el de "Año", y al mismo tiempo me arroja el error de ResultSet is closed

Código Java:
Ver original
  1. //al comienzo del jFrame declaro lo atributos
  2.     Connection conn = null;
  3.     ResultSet rs = null;
  4.     PreparedStatement pst = null;
  5.  
  6.  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  7.         try
  8.         {
  9.             String sql = "select * from Cliente where Rut='"+txtRutUpdate.getText().toUpperCase()+"' ";
  10.             pst = conn.prepareStatement(sql);
  11.             rs = pst.executeQuery();
  12.            
  13.             if(rs.next())
  14.             {
  15.                 String add1 = rs.getString("Rut");
  16.                 txtRut.setText(add1);
  17.                 String add2 = rs.getString("Nombre");
  18.                 txtNombre.setText(add2);
  19.                 String add3 = rs.getString("Apellido");
  20.                 txtApellido.setText(add3);
  21.                 String add4 = rs.getString("Telefono");
  22.                 txtTelefono.setText(add4);
  23.                 String add5 = rs.getString("Correo");
  24.                 txtCorreo.setText(add5);
  25.                 String add6 = rs.getString("Comuna");
  26.                 txtComuna.setText(add6);
  27.                 String add7 = rs.getString("Marca");
  28.                 comboMarca.setSelectedItem(add7);
  29.                 String add8 = rs.getString("Modelo");
  30.                 comboModelo.setSelectedItem(add8);
  31.                 String add9 = rs.getString("Año");
  32.                 txtAño.setText(add9);
  33.  
  34.             }else
  35.             {
  36.                 JOptionPane.showMessageDialog(null, "Cliente no existe");
  37.             }
  38.  
  39.         }catch(Exception e)
  40.         {
  41.             JOptionPane.showMessageDialog(null, e);
  42.         }

PD: he depurado la aplicacion colocando puntos de interrumpcion y he descubierto que la aplicacion va bien hasta que llega a la linea 29 que es donde salta a la excepcion sql (resultset is closed). Eso explica que Año quede vacio, pero no logro comprender porque termina en la excepcion

agradesco cualquier ayuda

saludos

Última edición por gersard; 04/01/2016 a las 21:11
  #2 (permalink)  
Antiguo 05/01/2016, 01:33
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: java.sql.SQLException: ResultSet is closed

Hola:

No está claro dónde se produce el error, dices que te rellena todos los campos menos año, por lo que la línea 30 parece que se ejecuta correctamente, pero dices que el error es en la 29 (siempre que tu numeración de línea corresponda con la que aparece aquí en el foro).

Me "mosquea" la ñ en la columna "Año". ¿Está permitido ese caracter? Prueba a poner un nombre de columna normal.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 05/01/2016, 09:07
 
Fecha de Ingreso: junio-2015
Mensajes: 6
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: java.sql.SQLException: ResultSet is closed

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

No está claro dónde se produce el error, dices que te rellena todos los campos menos año, por lo que la línea 30 parece que se ejecuta correctamente, pero dices que el error es en la 29 (siempre que tu numeración de línea corresponda con la que aparece aquí en el foro).

Me "mosquea" la ñ en la columna "Año". ¿Está permitido ese caracter? Prueba a poner un nombre de columna normal.

Se bueno.
hola

efectivamente cuando depure llegaba hasta la linea 29 y despues saltaba a la excepcion, pero luego cuando reviso la aplicacion, si se habia rellenado el combobox de la linea 30. Con respecto a la Ñ, no me da ningun problema, ya que tengo otros paneles donde inserto, elimino y busco en la misma tabla y no me dan ningun problema

saludos
  #4 (permalink)  
Antiguo 05/01/2016, 09:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: java.sql.SQLException: ResultSet is closed

Hola:

El error "ResultSet is closed" no tiene mucho sentido en el código que mandas. Ese error da cuando intentas leer de un ResultSet que está cerrado y entre las líneas 29, 30, ... no tienes ningún close().

Unicamente, como el ResultSet lo declaras como atributo de la clase y no como variable local del método jButton1ActionPerformed(), es posible que algún otro hilo en algún otro sitio te lo esté cerrando. Prueba a declararlo como variable local en el método en vez de como atributo.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 05/01/2016, 10:10
 
Fecha de Ingreso: junio-2015
Mensajes: 6
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: java.sql.SQLException: ResultSet is closed

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

El error "ResultSet is closed" no tiene mucho sentido en el código que mandas. Ese error da cuando intentas leer de un ResultSet que está cerrado y entre las líneas 29, 30, ... no tienes ningún close().

Unicamente, como el ResultSet lo declaras como atributo de la clase y no como variable local del método jButton1ActionPerformed(), es posible que algún otro hilo en algún otro sitio te lo esté cerrando. Prueba a declararlo como variable local en el método en vez de como atributo.

Se bueno.
gracias estimado, declarando las variables de manera local logre corregir el error

muchas gracias !

saludos

Etiquetas: resultset, sqlite
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.