2016-04-21 5 views
0

Ich mache eine Anmeldung, in der sich Benutzer anmelden können. Aber ich erhalte diesen Fehler: Diesejava.sql.SQLException: [SQLITE_ERROR] SQL-Fehler oder fehlende Datenbank (in der Nähe von "Name": Syntaxfehler)

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "Name": syntax error) 

ist, wie mein Code wie folgt aussieht:

saveTButton.addEventHandler(ActionEvent.ACTION, (e)-> { 

     try 
     { 
      String query = "insert into TeachersInfo (First Name,Last Name,UserName,Password) values (?,?,?,?)"; 
      PreparedStatement pst = connectionUsers.prepareStatement(query); 
      //First question mark = 1, second = 2, etc. 
      pst.setString(1,nameSignupTTextField.getText()); 
      pst.setString(2,lastnameSignupTTextField.getText()); 
      pst.setString(3,usernameSignupTTextField.getText()); 
      pst.setString(4,passwordSignupTTextField.getText()); 


      pst.execute(); 

      System.out.println("Data saved"); 

      //after executing the query this lines will close the connection with the database 
      pst.close(); 

     } 
     catch(Exception a) 
     { 
      System.out.println(a); 
     } 
    }); 

der Code sollte die Informationen durch den Benutzer in die Datenbank eingegeben speichern. Ich habe keine Ahnung, was das Problem ist, also würde ich die Hilfe wirklich schätzen. Vielen Dank im Voraus ..

Antwort

0

Ich bin nicht sicher, ob leere Zeichen in Tabellenspalten sind erlaubt in SQL Lite. Aber Sie könnten dies versuchen:

insert into TeachersInfo ([First Name],[Last Name],UserName,Password) values (?,?,?,?) 

Andernfalls versuchen, die Spaltennamen zu bearbeiten.

0

Ich denke, das Problem ist der Platz in Ihren Spaltennamen First Name und Last Name. Wenn das wirklich die Spaltennamen sind, muss man sie wohl zitieren. Aber es wäre besser, keine Leerzeichen in Spaltennamen zu verwenden.

0

Verwenden Sie kein Leerzeichen im Spaltennamen.

 try 
    { 
     String query = "insert into TeachersInfo (First_Name,Last_Name,UserName,Password) values (?,?,?,?)"; 
     PreparedStatement pst = connectionUsers.prepareStatement(query); 
     //First question mark = 1, second = 2, etc. 
     pst.setString(1,nameSignupTTextField.getText()); 
     pst.setString(2,lastnameSignupTTextField.getText()); 
     pst.setString(3,usernameSignupTTextField.getText()); 
     pst.setString(4,passwordSignupTTextField.getText()); 


     pst.execute(); 

     System.out.println("Data saved"); 

     //after executing the query this lines will close the connection with the database 
     pst.close(); 

    } 
    catch(Exception a) 
    { 
     System.out.println(a); 
    } 
}); 
Verwandte Themen