Requet de supresion en java

kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011 - 18 janv. 2010 à 21:38
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011 - 19 janv. 2010 à 09:35
bonjour a vous tous je souhaite suprimer une donnè de ma BD sql mais ca marche pas meme si la requet et just "j estime"

Description lorsque je click sur le bouton qui me permettant de suprimer rien ne ce passe et il ma fiche une erreur au niveau de netbeans :
erreur : S1009

je trouve au qu une fote au niveua de ma requet mon probleme c est qu il ne pase pas a la ligne de la requet
ResultSet req = set.executeQuery("DELETE from client where id_client= "+ num + "");
pour executer la requet


merci de me repondre...
c est mon code

import com.mysql.jdbc.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class modi extends javax.swing.JFrame {
if(ppp.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "Veuillez entrer le information du client !");
}
else{
try
{
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost/java";
String user ="root";
String pass="";
Connection cnx = (Connection) DriverManager.getConnection(url, user, pass);
Statement set= (Statement) cnx.createStatement();
String num = ppp.getText();
ResultSet req = set.executeQuery("DELETE from client where id_client= "+ num + "");
JOptionPane.showMessageDialog(this, "le client a ete suprimer");
req.close();
set.close();
}


catch (ClassNotFoundException e)
{ System.out.println("erreur : ClassNotFoundException"); }

catch (SQLException e)
{System.out.println("erreur : " +e.getSQLState());}

}

}

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 janv. 2010 à 22:09
Salut,

Bon c'est un peu mieux niveau langage sms, c'est déjà cà.

Tu as essayé ce que je t'ai dit dans ton post précédent ? Utiliser la fonction execute en lieu et place de la fonction executeQuery ?
______________________________________
DarK Sidious
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
18 janv. 2010 à 22:20
non j ai dejat essayé ce que je tu ma dit dans ton post p arécédent
mais ca marche pas c est j utilise un execute au lieu de la fonction executeQuery il n acept pas la ligne:
ResultSet req = set.executeQuery("DELETE from client where id_client= "+ num + "");
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 janv. 2010 à 22:25
Salut,

Non mais essaye de comprendre un peu ce que tu fais... regarde la signature de la fonction : elle renvoie un boolean et pas un Resultset (quel intérêt de récupèrer un resultset d'une suppression ???).

Donc il ne suffit pas de juste modifier le nom de la fonction utilisée : il faut également modifier le type de retour.
______________________________________
DarK Sidious
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
18 janv. 2010 à 22:36
merci de me repondre DARKSIDIOUS

oui c est vrè j ai esayè de changer ResultSet en mettant string par exemple mais ca marech pas aussi
j arrive pas a le faire tous sauver moi svp si tu peut le fair


merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 janv. 2010 à 22:50
Salut,

Ce n'est pas un string qui est renvoyé, mais un BOOLEAN, y'a qu'à regarder la javadoc !!!

Donc au lieu de :
ResultSet req = set.executeQuery("DELETE from client where id_client= "+ num + ""); 


Il faut mettre :
Boolean req = set.executeQuery("DELETE from client where id_client= "+ num + ""); 
if (!req) {
// la suppression a échoué
}


______________________________________
DarK Sidious
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
18 janv. 2010 à 23:05
un grand merci au fond de mon coeur pour votr repense DARKSIDIOUS
ca marche mais
j ai un autr problme au niveau de l updat je vias pratiquer les meme regle sur lui s il march je vous le dit si non ....
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
18 janv. 2010 à 23:09
merci sa marche aussi
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
18 janv. 2010 à 23:31
Salut,

encors une fois pour modifier un seul champ ca marche exemple let id_client mais ci je veut modifier tous les champs a la fois par une seul requet ca march pas c est ma requet ;
int nm=Integer.parseInt(ppp.getText());
String nom = pp.getText();
int tel = Integer.parseInt(p.getText());

Boolean req = st.execute("Update client SET (id_client="+nm+",nom=="+nom+",tel="+tel+") where id_client= "+ num +"");
if (!req) {



merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 janv. 2010 à 07:35
Salut,

Il doit très certainement te manquer des apostrophes dans ta requêtes (je vois mal un nom être enregistré sous forme d'entier dans ta base) : c'est la base du SQL : les textes doivent être encadrés par des apostrophes :
st.execute("Update client SET (id_client="+nm+",nom='"+nom+"',tel="+tel+") where id_client= "+ num +"");


Et si ton champ tel est un champ texte, il faut faire de même pour lui
______________________________________
DarK Sidious
0
kabi14 Messages postés 50 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 28 juin 2011
19 janv. 2010 à 09:35
bon jour

merci ,sayè j ai trouver une solution au problème c est niveau de la requête
c est la solution :
Boolean req = st.execute("Update client SET id_client="+nm+",nom='"+nom+"',tel="+tel+" where id_client= "+ num);
merci

mais je veut aussi utiliser le num c est la zone texte dans jfram1 que a travers elle je recéper la donnée "id_client" a modifier dans un notre jfarm2 et j arrive pas ale faire
j ai déclarer cette zone entant que public et static dans jfram1 mais je sais plus coment le racuper dans jfarm2
0
Rejoignez-nous