Tengo un problema con un bucle while que funciona correctamente en cuanto a los resultado que debe devolver pero lo hace 2 veces y ya no sé como mirarlo para ver dónde esta el error.
Os dejo el código por si alguno de vosotros me puede indicar que estoy haciendo mal que este while realizce 2 veces el proceso de recorrer el resultSet
public String buscaNameContacto(String busca) { //Conecto con BD accesoBD = new ConectarDB(); accesoBD.conectandoBD();
//variables resultado = ""; coincidencia = 0;
try { //Realizamos consulta sobre BD de contactos String Sqlcontacto = "select nombre,apellidos,palabra from contactos,palabras where idcontacto=palabras.idcontactoFK order by nombre"; ResultSet rstname = accesoBD.st.executeQuery(Sqlcontacto);
//Buscamos coincidencia por nombre y apellidos while (rstname.next()) { //Obtengo valores del resulset contacto = rstname.getString(1) + " " + rstname.getString(2);
//Buscamos coincidencia por nombre y apellidos if (busca.equals(rstname.getString(1) + " " + rstname.getString(2))) { coincidencia = 1; resultado = contacto; }
//Buscamos coincidencia por nombre else if (busca.equals(rstname.getString(1))) { coincidencia = 1; resultado = contacto; }
//Buscamos coincidencia por apellidos else if (busca.equals(rstname.getString(2))) { coincidencia = 1; resultado = contacto; }
for (int i=0;i<separaclave.length;i++) { if (busca.equals(separaclave[i])) { coincidencia = 1; resultado = contacto; } } } }
if (coincidencia == 0) { JOptionPane.showMessageDialog(null, "No se encontraron contactos con esa palabra clave", "Lista de Contactos", JOptionPane.INFORMATION_MESSAGE); }
Hola a todos.
Tengo un problema con un bucle while que funciona correctamente en cuanto a los resultado que debe devolver pero lo hace 2 veces y ya no sé como mirarlo para ver dónde esta el error.
Os dejo el código por si alguno de vosotros me puede indicar que estoy haciendo mal que este while realizce 2 veces el proceso de recorrer el resultSet
public String buscaNameContacto(String busca)
{
//Conecto con BD
accesoBD = new ConectarDB();
accesoBD.conectandoBD();
//variables
resultado = "";
coincidencia = 0;
try
{
//Realizamos consulta sobre BD de contactos
String Sqlcontacto = "select nombre,apellidos,palabra from contactos,palabras where idcontacto=palabras.idcontactoFK order by nombre";
ResultSet rstname = accesoBD.st.executeQuery(Sqlcontacto);
//Buscamos coincidencia por nombre y apellidos
while (rstname.next())
{
//Obtengo valores del resulset
contacto = rstname.getString(1) + " " + rstname.getString(2);
//Buscamos coincidencia por nombre y apellidos
if (busca.equals(rstname.getString(1) + " " + rstname.getString(2)))
{
coincidencia = 1;
resultado = contacto;
}
//Buscamos coincidencia por nombre
else if (busca.equals(rstname.getString(1)))
{
coincidencia = 1;
resultado = contacto;
}
//Buscamos coincidencia por apellidos
else if (busca.equals(rstname.getString(2)))
{
coincidencia = 1;
resultado = contacto;
}
//Buscamos coincidencia por palabra clave
else
{
String [] separaclave = rstname.getString(3).split("_");
for (int i=0;i<separaclave.length;i++)
{
if (busca.equals(separaclave[i]))
{
coincidencia = 1;
resultado = contacto;
}
}
}
}
if (coincidencia == 0)
{
JOptionPane.showMessageDialog(null, "No se encontraron contactos con esa palabra clave", "Lista de Contactos", JOptionPane.INFORMATION_MESSAGE);
}
//rstname.close();
accesoBD.st.close();
}
catch (SQLException ErrSql)
{
// TODO Auto-generated catch block
ErrSql.printStackTrace();
}
return resultado;
}
Un saludo.