Autor
|
Tema: Problemas con next() (Leído 2,135 veces)
|
Nafko
Desconectado
Mensajes: 14
|
Hola.... Tengo un pequeño problema, pero antes, explico que tengo una base de datos (bbdd), una clase ConexionBD y un formulario (FX), todo marcha bien hasta que, tenia que hacer la búsqueda por cliente, perfecto pero cuando no encontraba ese cliente por a, b o c motivo requería que entrara a otro método para hacer otra búsqueda por servicio esto lo hice con un if else, mediante el uso de next(), si next()==true entra en un ciclo while y muestra los datos en una tabla pero si next()==false pasa al else y se realiza una búsqueda por servicio pero al hacer eso el next() cambia de manera fantasmagórica dejo la base de datos y el proyecto ademas de las lineas de código que me tienen complicado... Espero sus respuestas desde ya gracias Cabe destacar que uso netbeans 8.0.1private void BuscarActionPerformed(java.awt.event.ActionEvent evt) { if (ingbuscar.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "Ingrese un Numero de Factura"); } DefaultTableModel modelo=(DefaultTableModel)Resultado.getModel(); ConexionBD consultar=new ConexionBD(); try { ResultSet registro=consultar.Consultar(Integer.parseInt(String.valueOf(ingbuscar.getText()))); if (registro.next()) { //aqui se origina el problema, entra en true y sale en false // registro.first(); int i=0; while (registro.next()==true) { JOptionPane.showMessageDialog(null, "Cliente fue Encontrado"); modelo.addRow(new Object[1]); Resultado.setValueAt(registro.getString("Nombre"),i,0); Resultado.setValueAt(registro.getString("Apellido"),i,1); Resultado.setValueAt(registro.getString("Rut"),i,2); Resultado.setValueAt(registro.getString("Cliente"),i,3); Resultado.setValueAt(registro.getString("Servicio"),i,4); Resultado.setValueAt(registro.getString("Medidor"),i,5); Resultado.setValueAt(registro.getString("Costo"),i,6); Resultado.setValueAt(registro.getString("Total"),i,7); i++; //JOptionPane.showMessageDialog(null, "Entro"); }} else{ JOptionPane.showMessageDialog(null, "Cliente no Encontrado, Se Buscara Servicio... :)"); }
ingbuscar.setText(null); } catch (InstantiationException ex) { Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, "Error "+ex); } catch (ClassNotFoundException ex) { Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, "Error "+ex); } catch (SQLException ex) { Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, "Error "+ex); } catch (IllegalAccessException ex) { Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, "Error "+ex); } }
Los archivos están aquí: https://mega.co.nz/#!zBYzHDSD!orUJXOvNCESERpx1Ko2FDb1F34Rjzs0VI2zTrGs9VtAFX: Archivo Netbeans MySQL: Base de Datos (esta dentro se llama bbdd)
|
|
« Última modificación: 20 Mayo 2015, 02:11 am por Nafko »
|
En línea
|
|
|
|
Chuidiang
|
Hola:
registro.next() además de devolver true ofalse, mueve al siguiente registro, por lo que con
if (registro.next())
estás desperdiciando el primer registro. Si solo hay uno, el siguiente
while (registro.next()==true)
será false.
No necesitas el if. Si quieres sacar un aviso no resultados, verifica simplemente si al terminar el bucle el contador i es cero.
Se bueno.
|
|
|
En línea
|
|
|
|
Nafko
Desconectado
Mensajes: 14
|
Muchas gracias ahora entiendo el problema al entrar al primer next() tiraba un true pero movía al siguiente registro que estaba en false y por eso no entraba en el ciclo while pero como podría hacer una validación para poder hacer correr otro método de búsqueda por servicio si el registro viene en false, porque si lo hago por el if else me cambiaría de true a false???
|
|
|
En línea
|
|
|
|
Chuidiang
|
Hola:
Lo que te he comentado, al final del bucle mira el contador i, si es cero, es que el bucle no ha entrado y por tanto no había registros.
Se bueno.
|
|
|
En línea
|
|
|
|
Nafko
Desconectado
Mensajes: 14
|
Gracias al parecer no había captado eso muchas gracias Esto es lo que hice: int i=0; while (registro.next()) { JOptionPane.showMessageDialog(null, "Cliente fue Encontrado"); modelo.addRow(new Object[1]); Resultado.setValueAt(registro.getString("Nombre"),i,0); Resultado.setValueAt(registro.getString("Apellido"),i,1); Resultado.setValueAt(registro.getString("Rut"),i,2); Resultado.setValueAt(registro.getString("Cliente"),i,3); Resultado.setValueAt(registro.getString("Servicio"),i,4); Resultado.setValueAt(registro.getString("Medidor"),i,5); Resultado.setValueAt(registro.getString("Costo"),i,6); Resultado.setValueAt(registro.getString("Total"),i,7); i++; } if (i==0) { ConexionBD conn=new ConexionBD(); ResultSet registroCS=conn.ConsultarServicio(Integer.parseInt(String.valueOf(ingbuscar.getText()))); JOptionPane.showMessageDialog(null, "Se Buscara por Servicio"); while (registroCS.next()) { JOptionPane.showMessageDialog(null, "Cliente fue Encontrado"); modelo.addRow(new Object[1]); Resultado.setValueAt(registroCS.getString("Nombre"),i,0); Resultado.setValueAt(registroCS.getString("Apellido"),i,1); Resultado.setValueAt(registroCS.getString("Rut"),i,2); Resultado.setValueAt(registroCS.getString("Cliente"),i,3); Resultado.setValueAt(registroCS.getString("Servicio"),i,4); Resultado.setValueAt(registroCS.getString("Medidor"),i,5); Resultado.setValueAt(registroCS.getString("Costo"),i,6); Resultado.setValueAt(registroCS.getString("Total"),i,7); i++; } }
|
|
« Última modificación: 21 Mayo 2015, 23:50 pm por Nafko »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problemas con problemas con NVidia FX5700LE
Juegos y Consolas
|
[D4N93R]
|
0
|
2,412
|
12 Abril 2005, 18:31 pm
por [D4N93R]
|
|
|
problemas Nero-problemas Roxio-problemas sonido de PC
Multimedia
|
mohabe
|
1
|
3,557
|
5 Abril 2006, 04:47 am
por fer63
|
|
|
listas enlazadas problemas resueltos todo un paquete de 13 problemas
Java
|
fiisi
|
4
|
55,359
|
9 Junio 2009, 02:25 am
por sapito169
|
|
|
Problemas con html5 amigos... tengo los siguientes problemas...
Desarrollo Web
|
XXXXXX
|
0
|
3,463
|
16 Junio 2010, 19:35 pm
por XXXXXX
|
|
|
problemas que tube con la proteccion de mi equipo. y problemas que tengo ahora
Seguridad
|
boot/expert
|
4
|
5,009
|
20 Septiembre 2012, 20:29 pm
por boot/expert
|
|