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:
El botón Modificar Proveedortry{ 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); }}
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: }