Comment faire la requete sql delete d'un varchar?

emimene Messages postés 31 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 - 19 févr. 2012 à 14:55
emimene Messages postés 31 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();}
});
A voir également:

4 réponses

emimene Messages postés 31 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
21 févr. 2012 à 11:28
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
1
emimene Messages postés 31 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
19 févr. 2012 à 14:59
l'erreur: c'est NumberFormatException: for input string "10/521/5"!! par exemple
comment je peux supprimer cet enregistrement où Numpermis est un varchar?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
19 févr. 2012 à 18:30
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...
0
emimene Messages postés 31 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
20 févr. 2012 à 09:46
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
0
Rejoignez-nous