2016-08-04 5 views
1

Ich habe einen Fehler festgestellt und kann meinen Fehler nicht erkennen. Ich habe meine Nachforschungen gemacht und keine passende Antwort für meine Frage gefunden."Die Anzahl der Spalten entspricht nicht der Anzahl der Werte in Zeile 1" E

Dies ist mein Code:

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()); 
    } 
}           

Was ich versuche, hier zu tun ist, ich bin Hinzufügen von Daten zu meiner SQL-Datenbank über ein Formular I in Java Netbeans entworfen. Ich habe das Formular, das ich hier erstellt habe, angehängt. My Form

Hilfe wäre sehr dankbar :)

Antwort

1

Genau das, was der Fehler sagt. Die Anzahl der Spalten und die Felder in den Werten stimmen nicht überein. Diese Art der Einfügung ohne Angabe der Spaltennamen ist auf keinen Fall die beste Vorgehensweise. Sie sollten tun

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

In der Tat sollten Sie diese Art der String-Verkettung auch nicht tun. Es ist viel besser, prepared statements zu verwenden. Der aktuelle Ansatz stellt nicht sicher, dass die Daten ordnungsgemäß gesichert werden, bevor sie gespeichert werden.

+0

Ziemlich sicher, dass die Werte er tatsächlich die Spalten + Wert –

+0

Vielen Dank für Ihre schnelle Antwort, es funktionierte wirklich gut. –

+0

Ich bin froh, dass ich geholfen habe – e4c5

Verwandte Themen