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

After end of result set ... No encuentro la Solucion

Estas en el tema de After end of result set ... No encuentro la Solucion en el foro de Java en Foros del Web. Hola buenas, antes que todo agradecer cualquier ayuda o sugerencia. Bueno les comento estoy haciendo un login en jsp y me arroja ese error, la ...
  #1 (permalink)  
Antiguo 30/10/2014, 12:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 0
After end of result set ... No encuentro la Solucion

Hola buenas, antes que todo agradecer cualquier ayuda o sugerencia.

Bueno les comento estoy haciendo un login en jsp y me arroja ese error, la consulta esta bien porque la imprimo y la pruebo en mysql y me arroja el usuario.
Este es mi codigo:

Código:
<%
	String nombre = request.getParameter("txtNombre");
	String pass = request.getParameter("txtPass");
	int logeado=0;
	try{
		String conexion="jdbc:mysql://localhost:3306/miBD";
		Connection connection=null; 
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		connection = DriverManager.getConnection(conexion,"root","12345");
				
		Statement stmt = connection.createStatement(); 
		ResultSet rset;
		
		String sql="SELECT * FROM usuarios WHERE usuario='"+nombre+"' AND contrasena='"+pass+"'";
		rset=stmt.executeQuery(sql);
		while(rset.next()){
			logeado=1;
		}
		if(logeado==1){
			session.setAttribute("usuario", "usuario");
			session.setAttribute("idUsuario", rset.getInt("idusuario"));
			out.println("<meta http-equiv='Refresh' content='1; url=../index.jsp' >");
		}else{
			out.println("<meta http-equiv='Refresh' content='1; url=../login.jsp' >");
		}
		rset.close();
		stmt.close();
		connection.close();
		
	}catch(Exception ex){
		out.println("Ha ocurrido el sigueinte error: "+ ex.getMessage().toString());
	}
	%>
Bueno he buscado por internet y me dice que tengo que cerrar la variable de tipo ResulSet o algo similar.

Desde ya agradecido cualquier sugerencia.
  #2 (permalink)  
Antiguo 30/10/2014, 14:54
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 4 meses
Puntos: 182
Respuesta: After end of result set ... No encuentro la Solucion

Buenas,

El problema no es al cerrar el resulset.

Estás haciendo un extraño bucle aquí:
while(rset.next()){
logeado=1;
}

De tal manera que el resultset termina apuntando a un valor nulo tras recorrer todos los valores.

Luego intentas acceder a dicho resultset haciendo:
rset.getInt("idusuario")

Y es donde te falla.
(Lo habrías descubiero rápidamente si pintas el stack completo del error, que te indica la línea en la que ha fallado. En lugar de ex.getMessage... usa ex.printStackTrace(); )

Para corregir el error bastaria con eliminar ese bucle y cambiar un poco la condición:

Código Java:
Ver original
  1. ResultSet rset;
  2.        
  3.         String sql="SELECT * FROM usuarios WHERE usuario='"+nombre+"' AND contrasena='"+pass+"'";
  4.         rset=stmt.executeQuery(sql);
  5.  
  6.         if(rset.next()){
  7.             session.setAttribute("usuario", "usuario");
  8.             session.setAttribute("idUsuario", rset.getInt("idusuario"));
  9.             out.println("<meta http-equiv='Refresh' content='1; url=../index.jsp' >");
  10.         }else{
  11.             out.println("<meta http-equiv='Refresh' content='1; url=../login.jsp' >");
  12.         }
  13.  
  14.         rset.close();
  15.         stmt.close();
  16.         connection.close();

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 01/11/2014, 20:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: After end of result set ... No encuentro la Solucion

Muchas gracias por tu ayuda no había visto mi error, con respecto a lo que me sugeriste ex.printStackTrace no pude implementarlo voy a ver que encuentro en google para poder implementar tu sugerencia.

Nuevamente muchas gracias

Etiquetas: encuentro, end, jsp, mysql, result, set, solucion, string
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 21:55.