Comment faire la requete sql delete d'un varchar?

Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
- - Dernière réponse : emimene
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
- 21 févr. 2012 à 11:28
comment je peux faire une requette "delete from where" pour supprimer un enregistrement dans une table (BD Mysql) où sa clé primaire est VARCHAR ??
bSupp.addActionListener(new ActionListener() 
{
Connection cnx=null;
PreparedStatement stSup;
   String rq="SELECT NumPermis,Nom,Prenom,DateNaiss,...FROM fiche_permis";
try {
cnx = DriverManager.getConnection("jdbc:mysql://localhost/BD'user=root&password=");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String rSup="DELETE FROM fiche_permis WHERE NumPermis=?";                        stSup=cnx.prepareStatement(rSup);													stSup.executeUpdate();
     } 
catch (Exception r) { r.printStackTrace();}
});
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
1
Merci
le meme probleme avec update

dans la requete
req="UPDATE fiche_permis SET Nom=? WHERE NumPermis=?"

NumPermis est un Varchar par exemple 11/05/200

si j'enleve le / sa marche avec le UPDATE et le DELETE !!!!

comment encoder les Slash ? varchar n'est pas suffisant

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de emimene
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
0
Merci
l'erreur: c'est NumberFormatException: for input string "10/521/5"!! par exemple
comment je peux supprimer cet enregistrement où Numpermis est un varchar?
Commenter la réponse de emimene
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Bonjour,

Il faut mettre des ' autour des varchar : "DELETE * FROM table WHERE machin='"+num+"'"

Par contre, je ne comprend pas pourquoi ton erreur est une NUmberFormatException.

Je ne comprend pas non plus à quoi te sert la requete rq et tu n'exécutes jamais la requete sur la base avec un executeUpdate...
Commenter la réponse de cs_Julien39
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
0
Merci
merci beaucoup d'avoir repondre
moi j'affiche la base de données dans une JTable (tb) et un BCAdapter (database)
bSupp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent se) {
if(tb.getSelectedRow()==-1)
{
JOptionPane.showConfirmDialog(sp,"VEUILLEZ D\'ABORD SELECTIONNER\nUNE FICHE SVP !","SELECTION NULLE",JOptionPane.OK_CANCEL_OPTION);
}else {
Connection cnx=null;
PreparedStatement stSup;
String rq="SELECT NumPermis,Nom,Prenom FROM fiche_permis";
try {
cnx = DriverManager.getConnection("jdbc:mysql://localhost/permis1?user=root&password=");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String rSup="DELETE FROM fiche_permis WHERE NumPermis=?";
String val;
stSup=cnx.prepareStatement(rSup);
val=tb.getValueAt(tb.getSelectedRow(),0).toString();
if(JOptionPane.showConfirmDialog(sp,"VOULEZ-VOUS VRAIMENT SUPPRIMER LA FICHE SELECTIONNEE ?", "CONFIRMATION",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{
stSup.setInt(1,Integer.parseInt(val));
stSup.executeUpdate();
database.executeQuery(rq);
tb.setModel(database);
}
System.out.println("valeur renvoyée :"+val);
   } catch (Exception r) {r.printStackTrace();}
}
}
});

le test de suppression c'est sur Nump>> un VARCHAR s'il égale à ? la valeur selectionnée il execute la requte mais j'ai eu cette erreur NUmberFormatException
j'ai essayé de mettre dans nump>> un INT ca marche mais avec VARCHAR NON
Commenter la réponse de emimene