Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problemas con un Update

Estas en el tema de Problemas con un Update en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/03/2013, 09:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Problemas con un Update

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:
    }
  #2 (permalink)  
Antiguo 04/03/2013, 09:34
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Problemas con un Update

Según eso parece que en el campo CUIL estás metiendo el valor 'CUIL' a pelo, y debe estar dandose esta situación:

CUIL es un campo marcado como UNIQUE
Existe un registro en la BD con valor CUIL para ese campo.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 04/03/2013, 09:48
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Respuesta: Problemas con un Update

Si así es Fuzzylog, me está tomando como valor del getString("CUIL")

Código:
txtCUIL.setText(rs.getString("CUIL"));
Cuando en este Label muestro jlabelCUIL.setText( p.get_CUIL()); me pasa bien el valor del textfield que veo en pantalla

pero estoy tan mareao que no veo la salida,ja
  #4 (permalink)  
Antiguo 04/03/2013, 09:58
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Problemas con un Update

String sql="Update proveedores set proveedor='proveedor',CUIL='CUIL',CUIT='CUIT',ing_ brutosprov='ing_brutosprov',direccion='direccion'w here proveedor='"+proveedor+"'"; => Revisa esto

Debería ser algo como:

String sql="Update proveedores set proveedor='"+proveedor+"',CUIL='"+CUIL+"',CUIT='"+ CUIT+"',ing_brutosprov='"+ing_brutosprov+"',direcc ion='"+direccion+"'where proveedor='"+proveedor+"'";
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 04/03/2013, 10:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Respuesta: Problemas con un Update Solucionado

Cita:
Iniciado por Fuzzylog Ver Mensaje
String sql="Update proveedores set proveedor='proveedor',CUIL='CUIL',CUIT='CUIT',ing_ brutosprov='ing_brutosprov',direccion='direccion'w here proveedor='"+proveedor+"'"; => Revisa esto

Debería ser algo como:

String sql="Update proveedores set proveedor='"+proveedor+"',CUIL='"+CUIL+"',CUIT='"+ CUIT+"',ing_brutosprov='"+ing_brutosprov+"',direcc ion='"+direccion+"'where proveedor='"+proveedor+"'";

Si era exatamente eso!! mil gracias.

Etiquetas: clase, string, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:38.