Probleme modifier Tableau avec UPDATE
gorgui2014
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, j'ai un probleme avec mon instruction pour modifier une ligne du tableau.
Il m'affiche toujours le message suivant:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
voici mon code :
// -------DAO-----------
// Modifier table Docteur
public String modifierDocteurAd(String matriculeDocteur, String prenomDocteur, String nomDocteur, String specialiteDocteur) {
String msg = "";
try{
// création et parametrage de la requete d'insertion
pst = con.prepareStatement("update docteur set matriculeDocteur = '"+matriculeDocteur+"', prenomDocteur = '"+prenomDocteur+"', nomDocteur = '"+nomDocteur+"', specialiteDocteur = '"+specialiteDocteur+"' where matriculeDocteur = '"+matriculeDocteur+"' ");
pst.setString(1, matriculeDocteur);
pst.setString(2, prenomDocteur);
pst.setString(3, nomDocteur);
pst.setString(4, specialiteDocteur);
// execution de la requete
int i = pst.executeUpdate();
if(i > 0) {
msg= "succes";
}else {
msg= "echec";
}
}catch(SQLException sqle) {
sqle.printStackTrace();
}
return msg;
}
// ----------Interrface swing---------
// Modifier docteur
private void cmd_modifierDocAdActionPerformed(java.awt.event.ActionEvent evt) {
String matriculeDocteur = txt_idenDocteur.getText();
String prenomDocteur = txt_prenomDoc.getText();
String nomDocteur = txt_nomDocteur.getText();
String specialiteDocteur = cb_specDocteur.getSelectedItem().toString();
String resultat = service.modifierDocteurAd(matriculeDocteur, prenomDocteur, nomDocteur, specialiteDocteur);
if(resultat.equals("succes")){
JOptionPane.showMessageDialog(null,"Information modifiées avec succès");
txt_idenDocteur.setText("");
txt_nomDocteur.setText("");
txt_prenomDoc.setText("");
comboBox();
Object[][] docteurs = service.showTousLesDocteurs();
JTable t = new JTable(docteurs, new String [] {"ID DOCTEUR", "MATRICULE", "PRENOM", "NOM", "SPECIALITE"});
tb_docAd.setModel(t.getModel());
}else {
JOptionPane.showMessageDialog(null,"Erreur lors de la modification des données");
}
}
Il m'affiche toujours le message suivant:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
voici mon code :
// -------DAO-----------
// Modifier table Docteur
public String modifierDocteurAd(String matriculeDocteur, String prenomDocteur, String nomDocteur, String specialiteDocteur) {
String msg = "";
try{
// création et parametrage de la requete d'insertion
pst = con.prepareStatement("update docteur set matriculeDocteur = '"+matriculeDocteur+"', prenomDocteur = '"+prenomDocteur+"', nomDocteur = '"+nomDocteur+"', specialiteDocteur = '"+specialiteDocteur+"' where matriculeDocteur = '"+matriculeDocteur+"' ");
pst.setString(1, matriculeDocteur);
pst.setString(2, prenomDocteur);
pst.setString(3, nomDocteur);
pst.setString(4, specialiteDocteur);
// execution de la requete
int i = pst.executeUpdate();
if(i > 0) {
msg= "succes";
}else {
msg= "echec";
}
}catch(SQLException sqle) {
sqle.printStackTrace();
}
return msg;
}
// ----------Interrface swing---------
// Modifier docteur
private void cmd_modifierDocAdActionPerformed(java.awt.event.ActionEvent evt) {
String matriculeDocteur = txt_idenDocteur.getText();
String prenomDocteur = txt_prenomDoc.getText();
String nomDocteur = txt_nomDocteur.getText();
String specialiteDocteur = cb_specDocteur.getSelectedItem().toString();
String resultat = service.modifierDocteurAd(matriculeDocteur, prenomDocteur, nomDocteur, specialiteDocteur);
if(resultat.equals("succes")){
JOptionPane.showMessageDialog(null,"Information modifiées avec succès");
txt_idenDocteur.setText("");
txt_nomDocteur.setText("");
txt_prenomDoc.setText("");
comboBox();
Object[][] docteurs = service.showTousLesDocteurs();
JTable t = new JTable(docteurs, new String [] {"ID DOCTEUR", "MATRICULE", "PRENOM", "NOM", "SPECIALITE"});
tb_docAd.setModel(t.getModel());
}else {
JOptionPane.showMessageDialog(null,"Erreur lors de la modification des données");
}
}
A voir également:
- Probleme modifier Tableau avec UPDATE
- Tableau word - Guide
- Modifier dns - Guide
- Tableau ascii - Guide
- Modifier liste déroulante excel - Guide
- Trier un tableau excel - Guide
2 réponses
Lorsque tu fais
pst.setString(1, matriculeDocteur);cela suppose que tu ais un
?dans ta requête SQL ce qui va permettre de mettre la bonne valeur à cet endroit, or toi tu as mis directement les valeurs avec
= '"+matriculeDocteur+"'ce qui est faux.
pst = con.prepareStatement("UPDATE docteur SET prenomDocteur = ?, nomDocteur = ?, specialiteDocteur = ? WHERE matriculeDocteur = ?"); pst.setString(1, prenomDocteur); pst.setString(2, nomDocteur); pst.setString(3, specialiteDocteur); pst.setString(4, matriculeDocteur);