SoloCodigo

Programación General => Java => Mensaje iniciado por: XaSu en Martes 29 de Mayo de 2007, 22:31

Título: Ayuda Con Java
Publicado por: XaSu en Martes 29 de Mayo de 2007, 22:31
hola. mira mi problema es en esta parte de mi codigo. el primer while recorre todo la tabla, en mi programa declaro un ResultSet donde llamo a una tabla de mi BD, el primer if, estoi preguntando si lo que contiene la variable palabra es lo mismo que esta en la tabla(columna Respuesta), si es igual que lo que contiene la Contrarespuesta(segunda columna de la misma tabla de Respuesta) lo guarde en la variable a, sino que recorra una segunda tabla (segundo while) y que me sak un dato de la otra tabla y lo guarde en la variable a.
mi problema esque si tengo n datos en la primera tabla y la variable palabra es igual a un dato me va a recorrer una vez el if y las demas veces el else(las n-1 vez), como puedo poner para que recorra toda la tabla y si encuentra algo lo guarde en la variable a y si no que me recorra el else???
ojala me puedan ayudar =)
aki les dejo el blok del problema.

while (rs.next())
{
  sql = rs.getString("Contrarespuesta");
  l = rs.getString("Respuesta");
  if(palabra.equals(l))
  {
     a=sql;
   }
   else
   {
     while(rs2.next())
     {
        doc=rs2.getString("Frase");
        a=doc;
      }
   }
}



XaSu
Título: Re: Ayuda Con Java
Publicado por: arielb en Martes 29 de Mayo de 2007, 23:18
prueba de esta manera trabajando de forma anidada.

Código: Text
  1. while (rs.next())
  2. {
  3.    sql = rs.getString("Contrarespuesta");
  4.    l = rs.getString("Respuesta");
  5.   while(rs2.next())
  6.   {  
  7.     if(palabra.equals(l))
  8.     {
  9.       a=sql;
  10.     }
  11.     else
  12.     {
  13.       doc=rs2.getString("Frase");
  14.       a=doc;
  15.     }
  16.   }
  17. }
  18.  

aunque podrias usar una sentencia con inner join.
Título: Re: Ayuda Con Java
Publicado por: XaSu en Miércoles 30 de Mayo de 2007, 16:47
mm gracias pero io no kiero k recorra las dos tablas al mismo tiempo, ni tampoco juntar datos.


lo que io kiero es k recorra una tabla primero y los datos de una columna los compare con una variable, si encuentra igualda que los guarde en una variable(a) y si no encuentra datos que me recorra la segunda tabla y me eliga cualkier dato de hay.

el problema que tengo con el codigo que puse anteriormente, es que si encuentra el dato en el primer registro, despues igual me recorre el else, ahi esta el problema.



XaSu
Título: Re: Ayuda Con Java
Publicado por: Manixxx en Miércoles 6 de Junio de 2007, 02:51
y ya probaste de este modo

while (rs.next())
{
    sql = rs.getString("Contrarespuesta");
    l = rs.getString("Respuesta");

    if(palabra.equals(l))
    {
        a=sql;
        break; // asi termina
    }
    else
   {
        while(rs2.next())
    {
    doc=rs2.getString("Frase");
    a=doc;
}


si es el caso de tu problema
Título: Re: Ayuda Con Java
Publicado por: dajacar en Sábado 9 de Junio de 2007, 18:42
Cita de: "juez"
prueba de esta manera trabajando de forma anidada.

Código: Text
  1. while (rs.next())
  2. {
  3.    sql = rs.getString("Contrarespuesta");
  4.    l = rs.getString("Respuesta");
  5.   while(rs2.next())
  6.   {  
  7.     if(palabra.equals(l))
  8.     {
  9.       a=sql;
  10.     }
  11.     else
  12.     {
  13.       doc=rs2.getString("Frase");
  14.       a=doc;
  15.     }
  16.   }
  17. }
  18.  

aunque podrias usar una sentencia con inner join.
hola m podrias ayudar a poner un juego java en red