Validar ingreso con Base de Datos
Hola a todos ...espero me puedan ayudar con mi problema..
estoy desarrollando un software al que solo se tendra acceso validando un Codigo y una Clave ingresada por el usuario...el proceso de validacion que quiero usar es el siguiente....
Obtengo el Codigo y la Clave a travez de 2 textfield : codigo.JTExtField y clave.JTextField...esos datos se guardaran en dos variables tipo String...hasta alli todo va bien..
luego ingreso a una base de datos y pido que compare esos dos valores con todos los codigo y las contraseñas que hay registradas en mi tabla "X" de la base de datos...Si algun codigo y clave de la base de datos es igual a los que ingrese en los textField..entonces el usuario tendra Acceso al software....
try{
Codigo = codigo.getText();
Clave = clave.getText();
Connection conexion = DriverManager.getConnection("jdbc:odbc:DataBaseFCP");
Statement estatuto = conexion.createStatement();
ResultSet rs = estatuto.executeQuery("select CODIGO,CLAVE from Socios where CODIGO = Codigo and CLAVE = Clave");
while(rs.next()){
CodigoBD = rs.getString("CODIGO");
ClaveBD = rs.getString("CLAVE");
jLabel3.setText(""+ClaveBD);
jLabel8.setText(""+CodigoBD);
if (Codigo.equals(CodigoBD) && Clave.equals(ClaveBD)){
PanelInicio.setVisible(true);
PanelPrincipal.setVisible(false);
}
else{
error.setVisible(true);
Codigo = "";
Clave = "";
}
}
estatuto.close();
conexion.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
cada vez que ejecuto el codigo me la base de datos me devuelve el ultimo dato de cada columna (CODIGO y CLAVE)..y cuando ingreso lo dos ultimos valores en los textfield no pasa nada aun siendo iguales...noc q puede andar mal..! por favor ayudenme..! se los Agredesco...
estoy desarrollando un software al que solo se tendra acceso validando un Codigo y una Clave ingresada por el usuario...el proceso de validacion que quiero usar es el siguiente....
Obtengo el Codigo y la Clave a travez de 2 textfield : codigo.JTExtField y clave.JTextField...esos datos se guardaran en dos variables tipo String...hasta alli todo va bien..
luego ingreso a una base de datos y pido que compare esos dos valores con todos los codigo y las contraseñas que hay registradas en mi tabla "X" de la base de datos...Si algun codigo y clave de la base de datos es igual a los que ingrese en los textField..entonces el usuario tendra Acceso al software....
try{
Codigo = codigo.getText();
Clave = clave.getText();
Connection conexion = DriverManager.getConnection("jdbc:odbc:DataBaseFCP");
Statement estatuto = conexion.createStatement();
ResultSet rs = estatuto.executeQuery("select CODIGO,CLAVE from Socios where CODIGO = Codigo and CLAVE = Clave");
while(rs.next()){
CodigoBD = rs.getString("CODIGO");
ClaveBD = rs.getString("CLAVE");
jLabel3.setText(""+ClaveBD);
jLabel8.setText(""+CodigoBD);
if (Codigo.equals(CodigoBD) && Clave.equals(ClaveBD)){
PanelInicio.setVisible(true);
PanelPrincipal.setVisible(false);
}
else{
error.setVisible(true);
Codigo = "";
Clave = "";
}
}
estatuto.close();
conexion.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
cada vez que ejecuto el codigo me la base de datos me devuelve el ultimo dato de cada columna (CODIGO y CLAVE)..y cuando ingreso lo dos ultimos valores en los textfield no pasa nada aun siendo iguales...noc q puede andar mal..! por favor ayudenme..! se los Agredesco...
Hola que tal!
Para empezar la consulta que haces ya de por sà te trae unicamente los valores introducidos en los JTextField, por lo que el while esta de más, deberÃas buscar una función que te dé el resultado de lo encontrado en la consulta, es decir, rs.algo(si tiene algún valor la busqueda).
Por lo que veo PanelInicio es la ventana a la que quieres pasar, después del login, no se que traes previo a este código, pero lo más lógico serÃa que hicieras una instanciación de PanelInicio.
Por otro lado, con PanelPrincipal, no deberÃas hacer un setVisible(false), pues solo estas quitando su parte gráfica, pero sigue estando ahÃ, y te está consumiendo memoria, deberÃas aplicarle un destroy(). creo que con ésto se resolverá tu problema.
Espero haber sido de ayuda en tu problema.
Para empezar la consulta que haces ya de por sà te trae unicamente los valores introducidos en los JTextField, por lo que el while esta de más, deberÃas buscar una función que te dé el resultado de lo encontrado en la consulta, es decir, rs.algo(si tiene algún valor la busqueda).
Por lo que veo PanelInicio es la ventana a la que quieres pasar, después del login, no se que traes previo a este código, pero lo más lógico serÃa que hicieras una instanciación de PanelInicio.
Por otro lado, con PanelPrincipal, no deberÃas hacer un setVisible(false), pues solo estas quitando su parte gráfica, pero sigue estando ahÃ, y te está consumiendo memoria, deberÃas aplicarle un destroy(). creo que con ésto se resolverá tu problema.
Espero haber sido de ayuda en tu problema.
