Hola gente, recién largo con JAVA y POO y estoy tratando de hacer un update y me da error.
Trato desde el botón buscar llenar los campos de texto y pasar los varlores para después tomarlos en el get() y modificar con el update, pero me dice que el campo CUIL por restriciones en invalido como
Me tira este error:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityCons traintException: Duplicate entry'CUIL' for key 2
lo que debería ser imposible porque es un UPDATE de un campo y no un autoincrementable ni nada que se le parezca.
Les pongo los códigos.
Las mismas propiedades las tengo en todas las variables, pongo de ejemplo el get y el set de proveedor
Código:
private String proveedor;
private String CUIL;
private String CUIT;
private String ing_brutosprov;
private String direccion;
private int id_ciudad;
//proveedor
public void setproveedor(String proveedor)
{
this.proveedor=proveedor;
}
public String get_proveedor()
{
return proveedor;
}
El método modificar en la Clase Proveedores
Código:
public void modificarProveedor( String proveedor,String CUIL,String CUIT,String ing_brutosprov,String direccion) throws ClassNotFoundException{
Conectar c1 = new Conectar();
Connection cn =c1.conexion();
//,int id_ciudad del public void modificarProveedor
//,id_ciudad='id_ciudad' del update
try {
String sql="Update proveedores set proveedor='proveedor',CUIL='CUIL',CUIT='CUIT',ing_brutosprov='ing_brutosprov',direccion='direccion'where proveedor='"+proveedor+"'";
PreparedStatement c=cn.prepareStatement(sql);
int cant_registros=c.executeUpdate();
if(cant_registros>0)
{
JOptionPane.showMessageDialog(null, "EL REGISTRO FUE ACTUALIZADO CORRECTAMENTE");
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
Con el botón buscar traigo el Proveedor y sus datos a los textfield.
Código:
try{
String ele=txtBusProveedor.getText();
Proveedores p = new Proveedores();
Conectar c1 = new Conectar();
Connection cn =c1.conexion();
String sql = "select * from proveedores inner join ciudades on proveedores.id_ciudad=ciudades.id_ciudad where proveedor='"+ele+"'";
//inner join ciudades on proveedores.id_ciudad=ciudades.id_ciudad
PreparedStatement c = cn.prepareStatement(sql);
ResultSet rs = c.executeQuery(sql);
if(rs.next()==true){
txtProveedor.setText(rs.getString("proveedor"));
txtCUIL.setText(rs.getString("CUIL"));
txtCUIT.setText(rs.getString("CUIT"));
txtDireccion.setText(rs.getString("direccion"));
txting_brutosprov.setText(rs.getString("ing_brutosprov"));
Integer var=Integer.parseInt(rs.getString("id_ciudad"));
txtid_Ciudad.setText(Integer.toString (var));
p.setproveedor(txtProveedor.getText());
p.setCUIL(txtCUIL.getText());
p.setCUIT(txtCUIT.getText());
p.setdireccion(txtDireccion.getText());
p.seting_brutosprov(txting_brutosprov.getText());
p.setid_ciudad(Integer.parseInt(txtid_Ciudad.getText()));
}
rs.close();
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}}
El botón Modificar Proveedor
Código:
private void btnModoficarProveedorActionPerformed(java.awt.event.ActionEvent evt) {
Proveedores p = new Proveedores();
p.setproveedor(txtProveedor.getText());
p.setCUIL(txtCUIL.getText());
p.setCUIT(txtCUIT.getText());
p.setdireccion(txtDireccion.getText());
p.seting_brutosprov(txting_brutosprov.getText());
Integer var=Integer.parseInt(txtid_Ciudad.getText());
p.setid_ciudad(var);
jlabelCUIL.setText( p.get_CUIL());
try {
p.modificarProveedor( p.get_proveedor(), p.get_CUIL(),p.get_CUIT(), p.get_direccion(),p.get_ing_brutosprov());
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, ex);
}
// TODO add your handling code here:
}