Modification de toute la table au lieu d'une seulle ligne
liondes
Messages postés70Date d'inscriptionsamedi 21 juillet 2012StatutMembreDernière intervention 3 mars 2015
-
5 sept. 2012 à 00:48
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
5 sept. 2012 à 11:44
Salut tout le monde
SVP j'ai toujours besoin à votre aide
mon brobleme c'est que la modification (UPDATE table SET) se fait sur toute la table et non pas sur un seul enregistrement voila mon code du bouton "Enregistrer" Qui fonctionne bien dans la partie d'ajout et non pour la partie de modification
private void enregistrerActionPerformed(java.awt.event.ActionEvent evt) {
//methode doublant pour verifier l'xistance de la ressource
try {
boolean doublant=false;
for(int j=0;j<dt.getRowCount()-1;j++)
{
if(ressourcetxt.getText().equals(dt.getValueAt(j, 1)))
{doublant = true;
break;
}}
//Enregistrement D'ajout
if(Id.getText().toString().equals(""))
{
if (ressourcetxt.getText().equals("")||passwordtxt.getPassword().toString().equals(""))
{
JOptionPane.showMessageDialog(null, "Veuillez Remplire Toutes Les Cases !");
ressourcetxt.requestFocus();
}
else if(doublant ==false)
{
st.executeUpdate("INSERT INTO user (Ressource,Pass,Service,Priv) Values ('"+ressourcetxt.getText().toString()+"','"+new String (passwordtxt.getPassword()).toString()+"','"+servicecmb.getSelectedItem().toString()+"','"+privilegecmb.getSelectedItem().toString()+"')");
JOptionPane.showMessageDialog(null, "Utilisateur Ajouté Avec Succès");
afficheliste();
liste.setEnabled(true);
premier.setEnabled(true);
dernier.setEnabled(true);
modifier.setEnabled(true);
supprimer.setEnabled(true);
nouveau.setEnabled(true);
i=dt.getRowCount()-1;
sedeplacer();
}
else{
JOptionPane.showMessageDialog(null, "Cette Ressource est déjà existante !");
ressourcetxt.setText("");
passwordtxt.setText("");
ressourcetxt.requestFocus();
}}
else
{
//Enregistrement De la modification
st.executeUpdate("UPDATE user SET Ressource='"+ressourcetxt.getText().toString()+"',Pass = '"+new String (passwordtxt.getPassword()).toString()+"',Service = '"+servicecmb.getSelectedItem().toString()+"',Priv = '"+privilegecmb.getSelectedItem().toString()+"'");
afficheliste();
}}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Erreur D'ajout ou de modification !\n"+"Contactez votre administrateur"+e.getMessage() );
}
}
A voir également:
Modification de toute la table au lieu d'une seulle ligne
liondes
Messages postés70Date d'inscriptionsamedi 21 juillet 2012StatutMembreDernière intervention 3 mars 20151 5 sept. 2012 à 01:11
Salut tout le monde
C'est bien j'ai trouvé la sollution c'est dans ligne suivante
st.executeUpdate("UPDATE user SET Ressource='"+ressourcetxt.getText().toString()+"',Pass = '"+new String (passwordtxt.getPassword()).toString()+"',Service = '"+servicecmb.getSelectedItem().toString()+"',Priv = '"+privilegecmb.getSelectedItem().toString()+"'");
la faute c'est la clause where manquante comme ca
st.executeUpdate("UPDATE user SET Ressource='"+ressourcetxt.getText().toString()+"',Pass = '"+new String (passwordtxt.getPassword()).toString()+"',Service = '"+servicecmb.getSelectedItem().toString()+"',Priv = '"+privilegecmb.getSelectedItem().toString()+"' where Num ="+Id.getText());
servicecmb.getSelectedItem().toString() : je pense que tu vas avoir des soucis si tu n'as pas surchargé la méthode toString du contenu de la conbobox. Si c'est des String, supprimes le toString()