com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:'字段列表'中的未知列'nombre'错误?

时间:2017-11-26 08:32:26

标签: java mysql insert field

我不知道为什么这不起作用。我已经在程序的另一部分中使用了相同的代码。有什么帮助吗?

 try {
       PreparedStatement pps;
      pps = cn.prepareStatement("INSERT INTO ventas (nombre,precio,cant)
                                  VALUES (?,?,?)");
            pps.setString(1, productotxt.getText());
            pps.setString(2, preciotxt.getText());
            pps.setString(3, cantidadtxt.getText());
            pps.executeUpdate();

            JOptionPane.showMessageDialog(null, "Registro exitoso!");
        } catch (SQLException ex) {
            Logger.getLogger(add.class.getName()).log(Level.SEVERE, null, ex);
        }

这是我的EER图表,如果它有帮助。

[]

2 个答案:

答案 0 :(得分:0)

你使用了错误的setter,即代码应该是这样的:

pps.setString(1, productotxt.getText());
 pps.setInt(2, preciotxt);
 pps.setInt(3, cantidadtxt);
 pps.executeUpdate();

将“preciotxt”和“cantidadtxt”转换为整数,如果不是..

答案 1 :(得分:0)

使用 setInt 代替 setString ,因为值为precio& cantidad在您的数据库中是 int 类型。

try {
           PreparedStatement pps;
          pps = cn.prepareStatement("INSERT INTO ventas (nombre,precio,cant)VALUES (?,?,?)");
                pps.setString(1, productotxt.getText());
                pps.setInt(2, Integer.parseInt(preciotxt.getText()));
                pps.setInt(2, Integer.parseInt(cantidadtxt.getText()));        
                pps.executeUpdate();

                JOptionPane.showMessageDialog(null, "Registro exitoso!");
            } catch (SQLException ex) {
                Logger.getLogger(add.class.getName()).log(Level.SEVERE, null, ex);
            }