2016-08-04 210 views
1

我遇到了一个错误,我无法找出我的错误。我已经完成了我的研究,并没有为我的问题找到合适的答案。“列计数与第1行的值计数不匹配”E

这是我的代码:

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

错误说什么。列的数量和值中的字段不匹配。没有指定列名的这种插入方式不是任何延伸的最佳实践。你应该做

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

其实,你也不应该做这样的字符串连接的。使用prepared statements要好得多。目前的方法并不能确保数据在保存前正确地转义。

+0

很确定他发布的值实际上是列+值 –

+0

感谢您的快速回复,它的工作非常好。 –

+0

很高兴有帮助 – e4c5

相关问题