Comment faire la requete sql delete d'un varchar?

Signaler
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
-
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
-
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();}
});

4 réponses

Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
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
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
l'erreur: c'est NumberFormatException: for input string "10/521/5"!! par exemple
comment je peux supprimer cet enregistrement où Numpermis est un varchar?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
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...
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
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