“列计数与第1行的值计数不匹配”E

时间:2016-08-04 12:04:44

标签: java mysql netbeans

我遇到了一个错误,我无法弄清楚我的错误。我完成了我的研究,但没有找到适合我的问题的答案。

这是我的代码:

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    String CN, CNo, MN, NT, SNo, VIP, T, D;
    CN = TF1.getText();
    CNo = TF2.getText();
    MN = TF3.getText();
    NT = TF4.getText();
    SNo = TF5.getText();
    VIP = TF6.getText();
    T = TF7.getText();
    D = TF8.getText();

    try
    {
        Class.forName("java.sql.DriverManager");
        Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/devika", "root", "rockgirl12");
        Statement stmt = (Statement) con.createStatement();
        String query = "INSERT INTO Maintenance VALUES ('"+CN+"',"+CNo+",'"+MN+"',"+NT+",'"+SNo+"','"+VIP+"','"+T+"','"+D+"');";
        stmt.executeUpdate(query);
        JOptionPane.showMessageDialog(this, "Record added succesfully!");
    }
    catch(Exception e)
    {
         JOptionPane.showMessageDialog(this, e.getMessage());
    }   
}                                        

我在这里要做的是通过我在Java Netbeans中设计的表单向我的SQL数据库添加数据。我附上了我在这里创建的表格。 My Form

非常感谢帮助:)

1 个答案:

答案 0 :(得分:1)

错误说的正是如此。列数和值中的字段不匹配。这种不指定列名的插入并不是最佳实践。你应该做

String query = "INSERT INTO Maintenance(col1, col2, col3, col4,..) VALUES ('"+CN+"',"+CNo+",'"+MN+"',"+NT+",'"+SNo+"','"+VIP+"','"+T+"','"+D+"');";

实际上,你也不应该做这种字符串连接。使用prepared statements要好得多。当前方法无法确保在保存之前正确转义数据。