Java - Error de Parámetro en btnguardar!!

 
Vista:
Imágen de perfil de Alejandro
Val: 38
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Error de Parámetro en btnguardar!!

Publicado por Alejandro (21 intervenciones) el 02/04/2018 20:41:02
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {
 
    PreparedStatement pst = null;
 
    String nombre = txtnombre.getText();
    String apellido = txtapellido.getText();
    String day = Integer.toString(datefecha.getCalendar().get(Calendar.DAY_OF_MONTH));
    String month = Integer.toString(datefecha.getCalendar().get(Calendar.MONTH));
    String year = Integer.toString(datefecha.getCalendar().get(Calendar.YEAR));
    String fecha = (year + "-" + month + "-" + day);
    String estado = jComestado.getSelectedItem().toString();
    String departamento = jComdepartamento.getSelectedItem().toString();
    String localidad = txtlocalidad.getText();
    String calle = txtcalle.getText();
    String telefono = txttelefono.getText();
    String celular = txtcelular.getText();
    String user = txtuser.getText();
    String pass = txtpass.getText();
    String id = txtid.getText();
 
    int confirmar = JOptionPane.showConfirmDialog(null, "¿Desea Modificar este registro?", "Modificar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
    if(confirmar == JOptionPane.YES_OPTION){
        String sql = "UPDATE usuarios SET nombre="+nombre+", apellido="+apellido+", fecha="+fecha+", estado="+estado+","+""
                + " departamento="+departamento+","+" localidad="+localidad+", calle="+calle+","+""
                + " telefono="+telefono+", celular="+celular+", username="+user+", password="+pass+" "+" WHERE id="+id+"";
        try{
            pst = connect().prepareStatement(sql);
 
            pst.setString(1, nombre);
            pst.setString(2, apellido);
            pst.setString(3, fecha);
            pst.setString(4, estado);
            pst.setString(5, departamento);
            pst.setString(6, localidad);
            pst.setString(7, calle);
            pst.setString(8, telefono);
            pst.setString(9, celular);
            pst.setString(10, user);
            pst.setString(11, pass);
 
            int n = pst.executeUpdate();
 
            if(n != 0){
                JOptionPane.showMessageDialog(rootPane, "Registro Modificado con Exito!");
                txtnombre.setEnabled(false);
                txtapellido.setEnabled(false);
                datefecha.setEnabled(false);
                jComestado.setEnabled(false);
                jComdepartamento.setEnabled(false);
                txtlocalidad.setEnabled(false);
                txtcalle.setEnabled(false);
                txttelefono.setEnabled(false);
                txtcelular.setEnabled(false);
                txtuser.setEnabled(false);
                txtpass.setEnabled(false);
                btneliminar.setEnabled(true);
                btncancelar.setEnabled(false);
                btnguardar.setEnabled(false);
            }else{
                JOptionPane.showMessageDialog(rootPane, "No se a podido Modificar el Registro!");
            }
        }catch(Exception e){
            System.err.println("Error" + e);
        }finally{
            try{
                if(connect() != null) connect().close();
                if(pst != null) pst.close();
            }catch(Exception e){
                System.err.println("Error" + e);
            }
        }
    }
}


El error que me salta es el siguiente: "Parameter index out of range (1 > number of parameters, which is 0)."
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error de Parámetro en btnguardar!!

Publicado por Yamil Bracho (2315 intervenciones) el 02/04/2018 21:02:25
En el sql que especificaste no estan especificando "placeholders" para los parametros que vas a enviar. Tu sql deberia ser

1
2
String sql = "UPDATE usuarios SET nombre=?, apellido=?, fecha=?, estado=?,
departamento=?,localidad=?, calle=?, telefono=?, celular=?, username=?, password=? WHERE id=?";
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 Alejandro
Val: 38
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Error de Parámetro en btnguardar!!

Publicado por Alejandro (21 intervenciones) el 02/04/2018 21:19:09
Hola Yamil, gracias por la respuesta inmediata. Pero en ves de utilizar marcadores de posición le paso las variables directamente donde tiene almacenado el contenido de los campos de textos que debería funcionar igual. Y ya había pensado en utilizar los marcadores de posición, pero el problema es que debo armar la fecha arriba ya que utilizo un jCalendar para así poder almacenarlo en mi base de datos y no me va a coincidir las posiciones en la sentencia sql..
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