Duda con Resultset
Publicado por Luis (83 intervenciones) el 25/12/2009 22:48:00
Estoy intentando recorrer un resultset hacia adelante y hacia atras.
La idea en si es mostrar los datos de una fila de una tabla en una ventana swing. En la ventana tengo dos botones jbAtras y jbAdelante que me deben permitir mostrar un registro y cuando le de por ejemplo al boton adelante mostrar el registro siguiente y si le doy al boton atras mostrar el registro anterior.
Tengo un metodo consultar que devuelve un resultset y lo llamo en el constructor de esta clase para que solo se ejecute una vez en cada ejecucion de la ventana donde tengo los botones. En dicho constructor tengo un variable tipo resultset a la que le asigno el resultado de la consulta esta variable se llama rs. Nota: no creo que haga falta colocar todo ese codigo pero si hace falta me dicen y lo coloco.
Tengo el siguiente codigo en el actionPerformed:
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == ven.jbAtras){
try {
if (rs.previous()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
}
}else if(ae.getSource() == ven.jbAdelante){
try {
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
}
}
}
Este codigo funciona bien para mostrar los registros hacia adelante y hacia atras como mencione que era lo que necesitaba. Por ejemplo esta consulta me devuelve cuatro registros que son los que tengo en la base de datos, yo puedo por ejemplo ir al primero, luego al segundo, luego al tercero, volver al segundo y asi todas las veces que quiera. El problema en si es que cuando llega al ultimo registro y intento retroceder me da este error.
java.sql.SQLException: After end of result set
La idea en si es mostrar los datos de una fila de una tabla en una ventana swing. En la ventana tengo dos botones jbAtras y jbAdelante que me deben permitir mostrar un registro y cuando le de por ejemplo al boton adelante mostrar el registro siguiente y si le doy al boton atras mostrar el registro anterior.
Tengo un metodo consultar que devuelve un resultset y lo llamo en el constructor de esta clase para que solo se ejecute una vez en cada ejecucion de la ventana donde tengo los botones. En dicho constructor tengo un variable tipo resultset a la que le asigno el resultado de la consulta esta variable se llama rs. Nota: no creo que haga falta colocar todo ese codigo pero si hace falta me dicen y lo coloco.
Tengo el siguiente codigo en el actionPerformed:
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == ven.jbAtras){
try {
if (rs.previous()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
}
}else if(ae.getSource() == ven.jbAdelante){
try {
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
}
}
}
Este codigo funciona bien para mostrar los registros hacia adelante y hacia atras como mencione que era lo que necesitaba. Por ejemplo esta consulta me devuelve cuatro registros que son los que tengo en la base de datos, yo puedo por ejemplo ir al primero, luego al segundo, luego al tercero, volver al segundo y asi todas las veces que quiera. El problema en si es que cuando llega al ultimo registro y intento retroceder me da este error.
java.sql.SQLException: After end of result set
Valora esta pregunta
0