Java - Error SQL: Unknown column 'ASD123' in 'where clause'

 
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 SQL: Unknown column 'ASD123' in 'where clause'

Publicado por Alejandro (21 intervenciones) el 27/08/2019 14:43:59
El codigo:

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
DecimalFormatSymbols separadoresPersonalizados = new DecimalFormatSymbols();
separadoresPersonalizados.setDecimalSeparator('.');
DecimalFormat formato1 = new DecimalFormat("#.00", separadoresPersonalizados);
 
String codigo = "";
String cantidad = "";
String cant1 = "";
float cant2;
float cant3;
float resultado;
String cant4 = "";
int confirmar = JOptionPane.showConfirmDialog(null, "¿Desea Actualizar los articulos cargados?", "Actualizar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(confirmar == JOptionPane.YES_OPTION){
    for(int i = 0; i < tablaproducto.getRowCount(); i++){
        codigo = tablaproducto.getValueAt(i, 0).toString();
        cantidad = tablaproducto.getValueAt(i, 1).toString();
        ResultSet rs = null;
        PreparedStatement pst = null;
        try{
            String sql = "SELECT cantidad FROM articulos WHERE cod="+codigo+"";
            pst =connect().prepareStatement(sql);
            rs = pst.executeQuery();
            while(rs.next()){
                cant1 = rs.getString("cantidad");
                JOptionPane.showMessageDialog(rootPane, cant1);
            }
        cant2 = Float.parseFloat(cantidad);
        cant3 = Float.parseFloat(cant1);
        resultado = cant2 + cant3;
        cant4 = String.valueOf(formato1.format(resultado));
        }catch(Exception e){
            System.err.println("Error" + e);
        }
        String cant5 = cant4;
        String punit = tablaproducto.getValueAt(i, 3).toString();
        String sql = "UPDATE articulos SET cantidad=?, preciocosto=? WHERE cod="+codigo+"";
        try{
            pst = connect().prepareStatement(sql);
            pst.setString(1, cant5);
            pst.setString(2, punit);
 
            int n = pst.executeUpdate();
 
            if(n != 0){
                JOptionPane.showMessageDialog(rootPane, "Registro Modificado con Exito!");
            }else{
                JOptionPane.showMessageDialog(rootPane, "No se a podido Modificar el Registro!");
            }
        }catch(Exception e){
           System.err.println("Error" + e);
        }
    }
}

Me tira este error:
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error SQL: Unknown column 'ASD123' in 'where clause'

Publicado por Rodrigo (623 intervenciones) el 27/08/2019 15:44:37
Tienes que poner comillas alrededor del codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
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 SQL: Unknown column 'ASD123' in 'where clause'

Publicado por Yamil Bracho (2315 intervenciones) el 27/08/2019 16:23:07
No uses string dinamicos con sentencias SQL y mas si estas usando una PreparedStatement.
Asi que cambia
1
String sql = "SELECT cantidad FROM articulos WHERE cod="+codigo+"";
a
1
2
3
4
5
6
7
8
9
String sql = "SELECT cantidad FROM articulos WHERE cod=?";
 
pst =connect().prepareStatement(sql);
pst.setString(1,codigo);
rs = pst.executeQuery();
if (rs.next()){
   cant1 = rs.getString("cantidad");
   JOptionPane.showMessageDialog(rootPane, cant1);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar