realizar udate a batias tablas


13 de Marzo del 2017

hola a todos, soy nuevo en el foro y me da un plaser formar parte de este foro.

les cuento hace muy poco termine de realizar un curso de java el cual duro solo 2 meses y fue brindado por el municipio de mi ciudad.

mi hermano em pidio si yo no le realizava un pequeño programa sensillo para el trabajo de el el cual es una obra social.

relize dicho programa iva todo muy bien hasta que me encontre con el siguiente problema,

yo tengo una base de datos llamada ultramed, la cual tiene 7 tablas las cuales tiene como nombre alta1,alta2,alta3,alta4.alta5,alta6 y alta7, todas estas tablas estan unidas a alta1 por un campo llamado txtpo, cada tabla tiene un campo llamado txtpo2... txtpo7.

el problema es que ala hora de realzar un update solo me permite realizarlo con 2 de las tablas las cuales son alta1 y alta2, este es el codigo del boton.

btnInicio.setForeground(Color.RED);
btnInicio.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
btnInicio.setBounds(859, 296, 121, 29);
contentPane.add(btnInicio);

JButton button_1 = new JButton("Modificar");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
Connection conexion = DB.conectarA("C:/ultramed/ultramed.db");
Statement comando=conexion.createStatement();
int alta1 = comando.executeUpdate("update alta1 set txtap1='" + txtap1.getText() + "' , txtno1='" + txtno1.getText() + "' , txtfn1='" + txtfn1.getText() + "', con1='" + con1.getSelectedItem() + "' , txtd1='" + txtd1.getText() + "' , txtna='" +txtna.getText() + "' , txtcp='" + txtcp.getText() + "' ,txtoc='" + txtoc.getText() + "' , txtlo='" + txtlo.getText() + "' ,txtdo='" + txtdo.getText() + "' ,txtn='" + txtn.getText() + "' ,txtdp='" + txtdp.getText() + "' ,txtba='" + txtba.getText() + "' ,txttel='" + txttel.getText() + "' ,txtg='" + txtg.getText() + "' ,txtemail='" + txtemail.getText() + "',conp='" + conp.getSelectedItem() + "',txtcu='" + txtcu.getText() + "',alt1='" + alt1.getSelectedItem() + "' where txtpo="+txtpo.getText());
if (alta1==1) {
}else{
int alta2 = comando.executeUpdate("update alta2 set txtap2='" + txtap2.getText() + "', txtno2='" + txtno2.getText() + "', txtfn2='" + txtfn2 .getText() + "', com2='" + com2.getSelectedItem() + "' , txtd2='" + txtd2.getText() + "' ,alt2='" + alt2.getSelectedItem() + "' where txtpo2="+txtpo.getText());
if (alta2==1) {

int alta3 = comando.executeUpdate("update alta3 set txtap3='" + txtap3.getText() + "', txtno3='" + txtno3.getText() + "', txtfn3='" + txtfn3 .getText() + "', com3='" + com3.getSelectedItem() + "' , txtd3='" + txtd3.getText() + "' ,alt3='" + alt3.getSelectedItem() + "' where txtpo3="+txtpo.getText());
if (alta3==1) {
int alta4 = comando.executeUpdate("update alta4 set txtap4='" + txtap4.getText() + "', txtno4='" + txtno4 .getText() + "', txtfn4='" + txtfn4 .getText() + "', com4='" + com4.getSelectedItem() + "' , txtd4='" + txtd4.getText() + "' ,alt4='" + alt4.getSelectedItem() + "' where txtpo4="+txtpo.getText());
if (alta4==1) {
int alta5 = comando.executeUpdate("update alta5 set txtap5='" + txtap5.getText() + "', txtno5='" + txtno5 .getText() + "', txtfn5='" + txtfn5 .getText() + "', com5='" + com5.getSelectedItem() + "' , txtd5='" + txtd5.getText() + "' ,alt5='" + alt5.getSelectedItem() + "' where txtpo5="+txtpo.getText());
if (alta5==1) {
int alta6 = comando.executeUpdate("update alta6 set txtap6='" + txtap6.getText() + "', txtno6='" + txtno6 .getText() + "', txtfn6='" + txtfn6 .getText() + "', com6='" + com6.getSelectedItem() + "' , txtd6='" + txtd6.getText() + "' ,alt6='" + alt6.getSelectedItem() + "' where txtpo6="+txtpo.getText());
if (alta6==1) {
int alta7 = comando.executeUpdate("update alta7 set txtap7='" + txtap7.getText() + "', txtno7='" + txtno7 .getText() + "', txtfn7='" + txtfn7 .getText() + "', com7='" + com7.getSelectedItem() + "' , txtd7='" + txtd7.getText() + "' ,alt7='" + alt7.getSelectedItem() + "' where txtpo7="+txtpo.getText());
if (alta7==1) {
}
}
}
}
}
}
}JOptionPane.showMessageDialog(null,"El cliente fue modificado");

}
catch(SQLException e){
e.printStackTrace();
}
}

});
button_1.setForeground(Color.RED);
button_1.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
button_1.setBounds(704, 296, 121, 29);
contentPane.add(button_1);
}
}


06 de Julio del 2017

Hola, 

por si lees esto:

el problema esta en que asumes que  comando.executeUpdate, retorna siempre 1, cuando ese metodo retorna el numero de columnas afectadas caso de la setencia sql update que estas usando. que puede ir de 0 hasta n, por eso te da ese comportamiento no esperado, imagino que lo que quieres saber si se actualizo la tabla en cuestion ?

bueno cambiando tu comparacion de =1 a >0 en todos tus if deberia bastar

 

saludos.