NO COMPARA STRINGS
Publicado por Monik (5 intervenciones) el 10/08/2010 18:21:21
Hola a tod@s,
estoy desarrollando una aplicación en Java la cual consume una base de datos. Principalmente el problema lo tengo en el siguiente trozo de código:
rset2=conexion_ORIGEN.createStatement().executeQue ry("SELECT CAMPO1 FROM TABLA1 WHERE TORIGEN='"+TOrigen+"' AND TDESTINO='"+TDestino+"' " + "AND ESTADO=1");
int j = 0;
while (rset2.next()){
listado.insertElementAt(rset2.getString(j+1),j);
//listado está declarado como:
//private static Vector listado = new Vector();
j++;
}
if (listado.elementAt(0).equals("RESULTADO"))
System.out.println("COINCIDEN");
El problema radica en que si bien en la tabla se ha guardado "RESULTADO" cuando hago la comparación con dicho valor no es capaz de detectarlo. Me hace sospechar que realmente no se esté guardando como un String... Pero no debería ser así ya que a partir de la consulta se está almacenando un tipo String. Así pues, ¿cómo debería efectuar la comparación para conseguir comparar con un determinado String o bien cómo debería capturarlo?
Y cabe destacar que la columna CAMPO1 se encuentra definida en la BD como NCHAR(10).
He probado varias posibilidades pero no he tenido éxito en ninguna de ellas... Por ejemplo trabajando con LinkedList en vez de Vector:
LinkedList lista = new LinkedList();
while (rset2.next()){
lista.add(rset2.getString(j+1)); //También he probado: lista.add(rset2.getObject(j+1))
}
Iterator it = lista.iterator();
while (it.hasNext()){
if (it.next().toString().equals("RESULTADO")) //También he probado: (it.next()=="RESULTADO")
System.out.println("COINCIDEN");
}
Pero en ninguno de estos casos es capaz de detectar que son iguales... Aunque por pantalla tienen el mismo valor...
Gracias y saludos.
estoy desarrollando una aplicación en Java la cual consume una base de datos. Principalmente el problema lo tengo en el siguiente trozo de código:
rset2=conexion_ORIGEN.createStatement().executeQue ry("SELECT CAMPO1 FROM TABLA1 WHERE TORIGEN='"+TOrigen+"' AND TDESTINO='"+TDestino+"' " + "AND ESTADO=1");
int j = 0;
while (rset2.next()){
listado.insertElementAt(rset2.getString(j+1),j);
//listado está declarado como:
//private static Vector listado = new Vector();
j++;
}
if (listado.elementAt(0).equals("RESULTADO"))
System.out.println("COINCIDEN");
El problema radica en que si bien en la tabla se ha guardado "RESULTADO" cuando hago la comparación con dicho valor no es capaz de detectarlo. Me hace sospechar que realmente no se esté guardando como un String... Pero no debería ser así ya que a partir de la consulta se está almacenando un tipo String. Así pues, ¿cómo debería efectuar la comparación para conseguir comparar con un determinado String o bien cómo debería capturarlo?
Y cabe destacar que la columna CAMPO1 se encuentra definida en la BD como NCHAR(10).
He probado varias posibilidades pero no he tenido éxito en ninguna de ellas... Por ejemplo trabajando con LinkedList en vez de Vector:
LinkedList lista = new LinkedList();
while (rset2.next()){
lista.add(rset2.getString(j+1)); //También he probado: lista.add(rset2.getObject(j+1))
}
Iterator it = lista.iterator();
while (it.hasNext()){
if (it.next().toString().equals("RESULTADO")) //También he probado: (it.next()=="RESULTADO")
System.out.println("COINCIDEN");
}
Pero en ninguno de estos casos es capaz de detectar que son iguales... Aunque por pantalla tienen el mismo valor...
Gracias y saludos.
Valora esta pregunta


0