Variables
Hola a todos y muchas gracias.
Tengo un problemilla y es el siguiente:
tengo una sentencia if que compara dos variables, una es = al nombre que el usuario introduce en un campo de texto; y la otra es igual al registro actual de una BBDD, los comparo para ver si el usuario esta registrado, y el problema que tengo es que aunque este en la BBDD, el if lo pasa por alto, como si las dos cadenas de texto no coincidiesen.
me he fijado en que sean iguales, utilizo el metodo trim(), pero nada.
Es mas, comparo la cadena de texto que recojo del formulario con una cadena exacta que yo introduzco y no las reconoce como iguales.
Alguien sabe que estoy haciendo mal?????
Gracias
CODIGO:
<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>
<%
String nombre, clave;
nombre = request.getParameter("usuario");
clave = request.getParameter("clave");
Connection canal = null;
ResultSet admins = null;
Statement instruccion =null;
String sitiobase = "c:jakarta-tomcat-4.1.29/webapps/hyundai/BBDD/hyundai_1.mdb";
String strcon= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sitiobase;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
out.println("controlador JDBC cargado" + "<br>");
canal=DriverManager.getConnection(strcon);
out.println("Establecida la conexion con la BBDD" + "<br>");
instruccion = canal.createStatement();
}
catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};
try{
admins = instruccion.executeQuery("select * from Administradores");
int x = 0;
while(x < 1){
admins.next();
String actual = admins.getString("Administrador");
if(nombre == actual){
x = 2;
out.println("Encontrado" + "<br>");
}else{
out.println(actual + " no es igual a " + nombre + "<br>");
}
}
admins.close();
} //fin try no usar ; al final de dos o mas catchs
catch(SQLException e) {};
try {canal.close();} catch(SQLException e) {};
%>
Tengo un problemilla y es el siguiente:
tengo una sentencia if que compara dos variables, una es = al nombre que el usuario introduce en un campo de texto; y la otra es igual al registro actual de una BBDD, los comparo para ver si el usuario esta registrado, y el problema que tengo es que aunque este en la BBDD, el if lo pasa por alto, como si las dos cadenas de texto no coincidiesen.
me he fijado en que sean iguales, utilizo el metodo trim(), pero nada.
Es mas, comparo la cadena de texto que recojo del formulario con una cadena exacta que yo introduzco y no las reconoce como iguales.
Alguien sabe que estoy haciendo mal?????
Gracias
CODIGO:
<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>
<%
String nombre, clave;
nombre = request.getParameter("usuario");
clave = request.getParameter("clave");
Connection canal = null;
ResultSet admins = null;
Statement instruccion =null;
String sitiobase = "c:jakarta-tomcat-4.1.29/webapps/hyundai/BBDD/hyundai_1.mdb";
String strcon= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sitiobase;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
out.println("controlador JDBC cargado" + "<br>");
canal=DriverManager.getConnection(strcon);
out.println("Establecida la conexion con la BBDD" + "<br>");
instruccion = canal.createStatement();
}
catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};
try{
admins = instruccion.executeQuery("select * from Administradores");
int x = 0;
while(x < 1){
admins.next();
String actual = admins.getString("Administrador");
if(nombre == actual){
x = 2;
out.println("Encontrado" + "<br>");
}else{
out.println(actual + " no es igual a " + nombre + "<br>");
}
}
admins.close();
} //fin try no usar ; al final de dos o mas catchs
catch(SQLException e) {};
try {canal.close();} catch(SQLException e) {};
%>
Si estas trabajando con objetos String deberias de hacer la comparacion de la siguiente forma:
if( nombre.trim().equals(actual.trim())){
...
}
tu comparación
if(nombre == actual)
no aplica.
Saludos.
if( nombre.trim().equals(actual.trim())){
...
}
tu comparación
if(nombre == actual)
no aplica.
Saludos.
