2016-08-04 62 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

相關問題