Il faut voir le type de données SQL du champ associé à la première variable de ton PreparedStatement (incomplet ici dans ton exemple puisque comme Brissou, je ne vois aucun "?" ).
Si ce n'est pas le type SQL INTEGER, tu dois peut-être utiliser setBigDecimal() ou setShort() au lieu de setInt().
Marakima
Magical Dreamers
Posté le 08-10-2009 à 18:53:36
j'ai modifié le code par :
Code :
PreparedStatement stmt = connection.prepareStatement("UPDATE employee SET Id=?, Nom=?, Prenom=?" );
stmt.setInt(1, 1);
stmt.setString(2, "xx" );
stmt.setString(3, "xx" );
stmt.executeUpdate();
alors je n'obtiens plus le message d'erreur, mais aucune mise à jour ne se fait !
brisssou
8-/
Posté le 08-10-2009 à 20:55:31
il manque pas un where ?
t'aurais pas un gros message d'erreur te disant que tu peux pas avoir des ID en doubles ??
Oui Marakima, tu devrais d'abord apprendre le SQL.
Je pense que ta requête devrait être:
"UPDATE employee SET Nom='?', Prenom='?' WHERE Id=?"
Marakima
Magical Dreamers
Posté le 09-10-2009 à 14:16:49
Ah désolé désolé !!
je me suis trompé dans la syntaxe, voilà :
Code :
PreparedStatement stmt = connection.prepareStatement("UPDATE employee SET Nom=?, Prenom=? WHERE Id=?" );
stmt.setInt(1, 1);
stmt.setString(2, "XX" );
stmt.setString(3, "XX" );
stmt.executeUpdate();
mais le problème c'est que la mise à jour ne se fait pas,
et je reçois le message suivant:
cause mère
java.lang.IllegalArgumentException: Cannot create table with name of existing table
alors qu'est ce que je pourrais faire pour régler ce problème ?
---------------
In A Different Time...In Another Place...We'll Meet Again...
cbeyls
Hail to the King, Baby
Posté le 09-10-2009 à 14:52:50
Je ne vois pas le rapport vu que tu fais un update et non un create, mais je te rappelle que vu qu'on a changé l'ordre des paramètres dans la requête, tu dois adapter le reste du code en conséquence (string, string, int et pas int, string, string).