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

エラーが言うまさに。列の数とvalulesのフィールドが一致しません。列名を指定せずにこのような挿入を行うことは、どのストレッチでもベストプラクティスではありません。する必要があります

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

実際には、このような文字列連結を行うべきではありません。 prepared statementsを使用する方がはるかに優れています。現在のアプローチでは、保存する前にデータが適切にエスケープされているとは限りません。

+0

彼が投稿した値が実際には列+値 –

+0

であることを確かめてください。あなたの素早い返答をありがとう、本当にうまくいった。 –

+0

助けてくれてうれしい – e4c5

関連する問題