Je vais avoir un peu de mal avec mes codes car il affiche cette erreurjava.sql.SQLSyntaxErrorException?
« java.sql.SQLSyntaxErrorException: Le nombre de valeurs assignées n'est pas le même que le nombre de colonnes spécifiées ou sous-entendus. »
J'ai lu des problèmes similaires, mais toujours confus sur la façon dont le mien affiche toujours l'erreur. Aussi j'ai essayé de mettre "," comme ceci entre les valeurs mais toujours pas bon. Et quelle est la déclaration préparée?
//CONNECTION
Connection conn = null;
try{
conn =
DriverManager.getConnection("jdbc:derby://localhost:1527/MetroEventsDB",
"root", "root");
System.out.println("Connected");
//Insertion
Statement stmt = (Statement) conn.createStatement();
stmt.execute("INSERT INTO Users(UserID, Password, FirstName, LastName, Gender, Birthdate) VALUES('"+txtUserID.getText()+txtPassword.getText()+txtFirstName.getText()+txtLastName.getText()+gender+txtBirthdate.getText()+"')");
}catch(SQLException e){
System.err.println(e);
}
Apprenez à utiliser correctement un 'PreparedStatement', par ex. en lisant le [tutoriel JDBC] (http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html) –
Oups mes mauvais après avoir regardé si longtemps que j'ai vu l'im manquant la seule qoutation .. Donc ça devrait ressembler à ça. VALUES ('"+ txtUserID.getText() +"', "" + txtPassword.getText() – justanything
Non, il ne devrait pas s'agir d'un 'PreparedStatement' avec des espaces réservés. Vous ne devriez pas ** concaténer entrée de l'utilisateur dans les requêtes SQL –