Java - Campos enteros vacios

   
Vista:
Imágen de perfil de Julian

Campos enteros vacios

Publicado por Julian (16 intervenciones) el 11/12/2017 13:35:00
Buenos días !
Lo que pasa es que que me guarde en la base de datos los siguientes elementos pero cuando dejo vacío algún campo tipo entero me comienza a formar conflicto y no me deja guardar los datos, pido ayuda urgente porfaaaaaaaaaa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
if(rb_cli.isSelected()){
    try {
        PreparedStatement pat = cnn.prepareStatement("insert into clientes(cod_cli,nom_cli,nom_oc,nom_tc,nom_mon,tip_doc,"
            + "num_doc,dig_ver,tel1,tel2,tel3,pag_web,correo,dire_fis,cod_pos_fis,pais_fis,dpo_fis,ciu_fis,dire_ent,cod_pos_ent,"
            + "pais_ent,dpo_ent,ciu_ent,enc_comp,cor_comp,car_comp,enc_tes,cor_tes,enc_cont,cor_cont,"
            + "mont_cre,dia_pla,des,fec_cre,usua) "
            + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        pat.setString(1,null);
        pat.setString(2,nom.getText());
        pat.setString(3,origen.getSelectedItem().toString());
        pat.setString(4,tipo.getSelectedItem().toString());
        pat.setString(5,moneda.getSelectedItem().toString());
        pat.setString(6,tip_doc.getSelectedItem().toString());
        pat.setString(7,num_doc.getText());
        pat.setInt(8,Integer.parseInt(dig_ver.getText()));
        pat.setInt(9,Integer.parseInt(tel1.getText()));
        pat.setInt(10,Integer.parseInt(tel2.getText()));
        pat.setInt(11,Integer.parseInt(tel3.getText()));
        pat.setString(12,pag_web.getText());
        pat.setString(13,cor.getText());
        //Direccion Fiscal
        pat.setString(14,dire_fis.getText());
        pat.setString(15,cod_pos_fis.getText());
        pat.setString(16,paises.getSelectedItem().toString());
        pat.setString(17,departamentos.getSelectedItem().toString());
        pat.setString(18,ciudades.getSelectedItem().toString());
        //Direccion entrega
        pat.setString(19,diree.getText());
        pat.setString(20,cod_pose.getText());
        pat.setString(21,paisese.getSelectedItem().toString());
        pat.setString(22,departamentose.getSelectedItem().toString());
        pat.setString(23,ciudadese.getSelectedItem().toString());
        //Contacto
        pat.setString(24,en_com.getText());
        pat.setString(25,cor_com.getText());
        pat.setString(26,car_com.getText());
        pat.setString(27,enc_tes.getText());
        pat.setString(28,cor_tes.getText());
        pat.setString(29,en_con.getText());
        pat.setString(30,cor_con.getText());
        //Finanzas
        pat.setString(31,mon_cre.getText());
        pat.setString(32,dp.getText());
        pat.setString(33,desc.getText());
 
        // Creacion
        pat.setString(34,getFechaActual());
        pat.setString(35,Login.nombreusuario.getText());
        pat.executeUpdate();
        JOptionPane.showMessageDialog(null, "Datos guardados con éxito");
        this.dispose();
    } catch (SQLException ex) {
        Logger.getLogger(Clie.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Campos enteros vacios

Publicado por Nicolas (128 intervenciones) el 11/12/2017 15:29:11
Hola Julian.
En un campo Entero de la base de datos debe tener siempre un valo. Si lo tenes vacio, deberias ponerlo a 0(cero). Un campo String o Varchar si puede ser vacio o nullo.
Espero te ayude. Abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose

Campos enteros vacios

Publicado por Jose (46 intervenciones) el 12/12/2017 00:12:32
Hola julian.

imagino que el error te da por las siguientes lineas:
1
2
3
4
pat.setInt(8,Integer.parseInt(dig_ver.getText()));
pat.setInt(9,Integer.parseInt(tel1.getText()));
pat.setInt(10,Integer.parseInt(tel2.getText()));
pat.setInt(11,Integer.parseInt(tel3.getText()));

esto es por lo que te entiendo puedes dejar los campo de texto vacio, entonces el metodo parseInt te retorna un error que no puede convertir una cadena vacia a entero.

solucion
verficas que cada cadena que quieres convertir en entero este vacia, si no esta
la parsea, de lo contrario seteas un valor por defecto en el ejemplo yo te coloco un 0.
1
2
3
4
5
String aux_dig_ver=dig_ver.getText();
if(aux_dig_ver!=null&&aux_dig_ver.lenght()>0)//si no esta vacio
   pat.setInt(8,Integer.parseInt(aux_dig_ver));
else
   pat.setInt(8,Integer.parseInt(0));

observación: por lo que te dijo nicolas, los enteros si pueden aceptar valor nulo pero no vacio.
Veo que algunos campos ingresas el teléfono, como sugerencia colocalo en varchar, debido que un numero telefónico puede (dependiendo del pais) contener otros caracteres, como en mi país se acostumbra a escribir 4555-5555, pero como te digo solo es sugerencia si en tu caso, si estas seguros que son solo números, pues dejalo entero y si pueden ser nulos, tambien lo especificas en tu tabla.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad