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.1
Código:
private 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);
}
}
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!orUJXOvNCESERpx1Ko2FDb1F34Rjzs0VI2zTrGs9VtA
FX: Archivo Netbeans
MySQL: Base de Datos (esta dentro se llama bbdd)