duda de como hacer un boton modificar/argardatos java

Seguir
hola les cuento estoy haciendo un programa para una prepaga, el programa tiene una ventana la cual es para modificar datos de un cliente, la cosa es que en esa misma ventana tengo que hacer que con el mismo botón modificar también me cargue datos que no estén en la base de datos es decir inserte también datos.

12 Soluciones propuestas

Es un error conceptual usar un mismo botón.
El botón debe decidir si se trata de una modificación o un alta, y para ello debe comparar lo que se denomina "conjunto de datos clave".
Supongamos que dicho conjunto sea unicamente el DNI.
Si cargué mal el DNI de una persona, será imposible modificarlo, ya que la modificación será tomada como un Alta, y ya no podrás acceder al registro original, ya que dicho número de DNI erróneo no figura en ningún lado.
Saludos!
es que en el programa tengo lo que se llama adherentes los cuales necesito cambiar si un adherente desea dejar la prepaga, pero como cada adherente esta en diferente base de datos con un mismo id de búsqueda.
Bueno, sólo te estoy transmitiendo la experiencia, y a veces es difícil hacerlo.
Es como interpretar que cuando dices Base de Datos, quieres decir Tablas.
Lo normal es que haya Altas, Bajas y Modificaciones, el famoso ABM.
No es que no se pueda hacer de otra manera, pero fijate que no estás dando del problema que tienes, cómo es el flowchart de la información, o hasta donde avanzaste en el diseño.
Considerá que quizás determinaste que debía existir sólo un botón sin ningún análisis previo, sólo porque sí.
Contanos cómo determinaste que sólo debe haber uno (*).

P (*) Escocia, 1518.
Tangos escribió:
Bueno, sólo te estoy transmitiendo la experiencia, y a veces es difícil hacerlo.
Es como interpretar que cuando dices Base de Datos, quieres decir Tablas.
Lo normal es que haya Altas, Bajas y Modificaciones, el famoso ABM.
No es que no se pueda hacer de otra manera, pero fijate que no estás dando del problema que tienes, cómo es el flowchart de la información, o hasta donde avanzaste en el diseño.
Considerá que quizás determinaste que debía existir sólo un botón sin ningún análisis previo, sólo porque sí.
Contanos cómo determinaste que sólo debe haber uno (*).

P (*) Escocia, 1518.

el programa, costa de un menú, este menú tiene la opción de agregar nuevo cliente y sus adherentes si lo tiene,
luego tiene otra ventana que es alta y baja.
y otra ventana que seria modificar, acá es donde esta el problema, yo pongo buscar cliente, y me aparece los datos del cliente y si tiene o no adherentes, pero si yo quiero que cuando le doy modificar a dicho cliente y este quiere agregar un cliente voy a modificar, pero no me guarda los datos sin antes aver colocado algo en ellos.
xxxminatoxxx escribió:
...pero si yo quiero que cuando le doy modificar a dicho cliente y este quiere agregar un cliente voy a modificar, pero no me guarda los datos sin antes aver colocado algo en ellos.


No queda demasiado claro lo que intentás decir.
Tangos escribió:
xxxminatoxxx escribió:
...pero si yo quiero que cuando le doy modificar a dicho cliente y este quiere agregar un cliente voy a modificar, pero no me guarda los datos sin antes aver colocado algo en ellos.


No queda demasiado claro lo que intentás decir.

aver como me puedo explicar mejor,
yo tengo una base de datos llamada prepaga, en ella, tengo 6 tablas las cueles son adherente 1, adherente2.... hasta adherente6, cada una contiene nombre,apellido,edad. estas tablas están unidas por un campo llamado ndesocio.
en el programa, tengo un botón llamado buscar, pongo en un campo el ndesocio y me sale los datos cargados, ahora si yo quiero modificar los datos de dichas tablas pero agregar uno nuevo no me permite
Parece un mal diseño de tablas.
En lugar de tener 6 Tablas de Adherentes, lo que permite un máximo de 6 Adherentes por Socio, se debería tener sólo 1 Tabla, con múltiples filas.
Filtrando la Tabla por Nro. de Socio se obtienen todos los registros coincidentes, y allí se puede modificar un registro, eliminarlo y dar de alta de forma normal.
Lo único que se debería usar es un índice único NroDeAdherente, para identificar cada registro de forma individual.
Saludos!
amigo lo que quieres no es nada de otro mundo solamente captura los valores a enviar y manda todo al script php y hace las dos consultas de update y INSERT .. lo podes hacer con ajax o no como quieras... las querys las haces en el orden que quieras .. si no es eso no llegue a entenderte bien lo que queres hacer
yorshdelaselva escribió:
amigo lo que quieres no es nada de otro mundo solamente captura los valores a enviar y manda todo al script php y hace las dos consultas de update y INSERT .. lo podes hacer con ajax o no como quieras... las querys las haces en el orden que quieras .. si no es eso no llegue a entenderte bien lo que queres hacer

hola no es php ni javascrip es java para crear app para celular o programas de pc, en mi caso es un programa de pc.
volviendo al tema les explico un poco mejor,
con esta imagen:
http://subefotos.com/ver/?5d5bf432cfa1ac6a5c4bf5716f060ab4o.png
en la imagen ban a ver que hay 2 cuadros de color verde los cuales al darle al boton modificar me permite guardar los datos que modifique, pero no me guarda los datos que modifique en el cuadro de color rojo.
este es el codigo del boton modificar.

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);
}
}
No veo en el Código los INSERT correspondientes en las tablas alta1 a alta7.
Verificá que cuando hacés el INSERT en alta1 lo estés haciendo también en las demás tablas.
Saludos!
hola este es el codigo de incert de alta1
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) {

asta alta2 me guarda los cambios pero despues de los demas no.
No colocaste el código de todos los INSERT.