Variables

viebone
01 de Diciembre del 2003
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) {};


%>

gago
01 de Diciembre del 2003
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.

laura
01 de Diciembre del 2003
para comparar variables de tipo cadena debes utilizar el metodo equals(), buscalo en un Api