Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/02/2012, 16:32
soliddanii
 
Fecha de Ingreso: febrero-2012
Mensajes: 10
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dolor de cabeza con JTable y Resultset

por si esto ayuda acabo de darme cuenta que no solo me pasa con el jTable. he hecho otra clase para autentificarse (una especie de login) que checkea si existe dicho usuario y contraseña en la base de datos, pero cuando le doi al boton para autentificarme, como siempre, se queda procesando indefinidamente y nunca acaba. os dejo el codigo por si ayuda.

Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
      main.conexion bd = new main.conexion();
        String usuario = null;String passw=null;
        try{
            bd.ConectarBaseDeDatos();
            bd.resultado = bd.sentencia.executeQuery("SELECT * from cuentas where nombre = '"+user.getText()+"'");
            while(bd.resultado!=null){
            while (bd.resultado.next()){
        usuario = bd.resultado.getString("nombre"); //obtenemos la string de usuario
        passw = bd.resultado.getString("pass"); //obtenemos la string de contraseña
        }}
        if(usuario==null){
            JOptionPane.showMessageDialog(null, "El usuario introducido es incorrecto" );
        }else{
           
            String password = new String(pass.getPassword());
       
       
        if(passw.equals(password)){
            
            //AQUI ACTIVAR TODOS LOS CONTROLES!!!!!
            JOptionPane.showMessageDialog(null,"Login realizado con éxito");
    
            setVisible(false);
            
        }else{JOptionPane.showMessageDialog(null, "La contraseña introducida es incorrecta" );}
        }
            
        }catch(Exception e){}
    }
EDITO:

Hola, provando un poco mas creo que el problema esta en torno a la lectura del resultset8por lo menos en este ultimo codigo). si se queda ejecutando indefinidamente es que se ha metido en un bucle infinito, que no acaba nunca, y creo que es el de :
Código:
while(bd.resultado.next()){
blablablabla
}
Claro probe a obtener sin ese buqle pero claramente no deja, y da un error : before start of resultset

Espero que esto les ayude para ayudarme, porfavor ayudenme gracias.


2ª EDICION:

Ya he conseguido que me funcione el últimi código posteado, el del login, el problema era el que sospechaba, entraba en un bucle del que no salía, y tenía que ser un while, pero no era el que postee anteriormente (bd.resultado.next()) si no que que me aconsejaba chuidiang (while(bd.resultado!=null)). No entiendo por que pero siempre se quedaba distinto de null, por lo que no acababa nunca. removi esa sentencia y el codigo del login ya funciona normalmente y la mar de bien. Voi a probar si puedo solucionar lo dela tabla de la misma manera. Salu2 y comente soluciones a lo de la tabla please, que sigue siendo un problema.


ULTIMA EDICION:

FUNCIONA!!! :D :D :D elimine esa sentencia de "while(bd.resultado!=null)" y todo funciona correctamente, lo prove que el metodo que me aconsejo lincolnf_2 (muchas gracias) quitandole esa sentencia, y todo funcionó correctamente. No entiendo porque, y se me lo explican les estaría agradecido, pero la cosa es que al final lo conseguí. Muchas gracias a todos por sus esfuerzos :)

Última edición por soliddanii; 25/02/2012 a las 17:46