java - "Column Count doesn' t 第 1 行的匹配值计数"E

标签 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

帮助将不胜感激:)

最佳答案

正是错误所说的。列数和值中的字段不匹配。这种不指定列名的插入方式无论如何都不是最佳做法。你应该做的

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

事实上,您也不应该进行这种字符串连接。使用 prepared statements 要好得多.当前的方法不能确保数据在保存之前被正确转义。

关于java - "Column Count doesn' t 第 1 行的匹配值计数"E,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766834/

相关文章:

php - 表单中心数据导出器

java - 使用表值填充组合框

java - Netbeans 找不到 java.io.InputStream

mysql - 使用另一个表列中的数据更新列

python - 来自mysql的数据类型

java - 除 OSGI、EJB(不是真的)和 Impala 之外的模块框架

java - 是否可以在布局中混合使用 `SurfaceView` 和另一个 `View` ?

java - 如何限制我的exe仅安装在特定计算机上?

java - 如何在Java中向下转换数组?(多态)

java - 试图从 Arraylist 中删除一个对象 - 仍然可以访问对象