JDBC ne supprime pas les ligne des table, pk??!!

iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009 - 23 mars 2009 à 11:55
ibrog Messages postés 19 Date d'inscription vendredi 15 décembre 2006 Statut Membre Dernière intervention 28 mars 2009 - 28 mars 2009 à 22:11
try{
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int res=st.executeUpdate("DELETE FROM PATIENT WHERE PATIEN_ID="+id+";");
System.out.println(res+" row(s) deleted.");
st.close();
}catch(Exception exc){
System.out.print(exc+"\n");
}

c'est le code que je met pour supprimer la ligne "id" de la table "PATIENT", tout marchera bien (je veux dire aucune erreur ou exception est lancer) mais quand je revient a ma table je voix que la ligne n'est pas supprimer.
Le type de PATIEN_ID dans la table est de type INT.
Si la base de donnée est une base dBase (Driver do Microsoft dBase), y a t'il quelqu'un qui peux m'aider a trouver une solution pour supprimer une ligne de cette table.

15 réponses

voilemiss Messages postés 46 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 16 janvier 2010 4
23 mars 2009 à 14:17
  slt,


Moi jé travaillé avec hibernat exactment je supprime en utilisant le criteria c'est plus simple je pense.


Si tu veux d'aide dis le je v te montrer comment faire le mapping avec hibernat aussi travailler avec le criteria ,


a+
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
23 mars 2009 à 17:48
Ben je veux bien, mais ce probleme est une partie d'un grand project, donc je veux pas recommencer a zero car ça va prendre de temps, s'il y a quelqu'un qui peux m'aider a trouver une solution a ce probleme!!

Merci voilemiss, je vais prendre ta solution si j'ai pas trouver la solution :)
0
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
23 mars 2009 à 17:54
as tu une transaction en autocommit false ?
si oui, il faut faire
con.commit();  // ?
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
23 mars 2009 à 18:03
Si , elle est true.
Ben voici le code complet :

....
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection con=DriverManager.getConnection(jdbc:odbc:Medic);
con.setReadOnly(false);
.....
try{
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int res=st.executeUpdate("DELETE FROM PATIENT WHERE PATIEN_ID="+id+";");
st.close();
}catch(Exception exc){
System.out.print(exc+"\n");
}
.....
0

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

Posez votre question
voilemiss Messages postés 46 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 16 janvier 2010 4
23 mars 2009 à 23:30
  Slt,


Dernierement jai utiliser jdbc moi je le prefaire pas mais voila ce ke jai fais mon ami c'etait en jsp ou je supprime en recuperant les donneés de jTextField


Class.forName(driver).newInstance();
 
 Connection con = DriverManager.getConnection(url+dbName,userName,password);
 PreparedStatement stmt=con.prepareStatement
 ("delete from inscription where matiere=? and  cin=?");
 stmt.setString(1,matiere);
 stmt.setString(2,cin);
 stmt.executeUpdate();


Sa fonctionne
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
23 mars 2009 à 23:43
ça pas marcher, je ne sais pas pourquoi pffffff , tout les autres commande sql fonctionne tres bien sauf l'istruction DELETE, ben merci a vous :(
0
voilemiss Messages postés 46 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 16 janvier 2010 4
23 mars 2009 à 23:52
slt,


jai travailleé sur eclipse moi et jai utiliser hibernat avec criteria comme jté dis javais avant un probleme comme toi de suppression qui se fait pas mé lerreu cetait que jutilise un Jtable alors dans la derniere le pointeur ne fonctionne pas bien alors je te conseil d'etuliser le Jtable en JscollPane cé mieu ok
moi quon jlai changer il a marché.




 
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
23 mars 2009 à 23:59
Je vais travailler avec Hibernat, je doit refaire le travaille a zero car je travaille sur netbeans, merci a tous ;).
Merci voilemiss pour ta proposition.
0
voilemiss Messages postés 46 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 16 janvier 2010 4
24 mars 2009 à 00:07
  avec plaisir je c sig quelque chose qui fonctionne pas lol ,


Bref je c travailler avec elle si tu veux j tenvoi un petit exemple ,
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
24 mars 2009 à 00:28
oui voilemiss avec plaisir, (si tu veux qu'on discute sure msn voici le mien [mailto:iscalibar@hotmail.com iscalibar@hotmail.com] car je prefere de parler live au lieu d'attendre un message).
0
ibrog Messages postés 19 Date d'inscription vendredi 15 décembre 2006 Statut Membre Dernière intervention 28 mars 2009
26 mars 2009 à 21:10
0
ibrog Messages postés 19 Date d'inscription vendredi 15 décembre 2006 Statut Membre Dernière intervention 28 mars 2009
26 mars 2009 à 21:13
Salut, bon je pense que c'est un peu retard pour repondre!!
dans cette requete il vous manque les cotes '"+id+"'
avec id est de type string qui doit avoir la valeur que vous voulez supprimer
>
int res=st.executeUpdate("DELETE FROM PATIENT WHERE PATIEN_ID='"+id+"';");
j'espere que ça marche!!
0
iscalibar Messages postés 15 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2009
27 mars 2009 à 00:25
merci ibrog mais mon PATIEN_ID est de type INT donc on doit pas met les cotes, franchement quand j'ai perdu l'espoire j'ai aissyer avec les cotes il j'avais une erreur de compatibilité, donc les cotes ne doient pas etre met :)
Merci encor et si tu as d'autre idée aide moi car si je trouve pas de solution je vais faire le project avec un autree language et c'est un grand project :)
0
ibrog Messages postés 19 Date d'inscription vendredi 15 décembre 2006 Statut Membre Dernière intervention 28 mars 2009
28 mars 2009 à 21:54
Salut, bon je sais pas ! le "id" c'est quoi exactement?
pour moi j'ai essayé cette requète et elle marche trés bien
----------------------------
String s1 = jTextField1.getText();
...
int r =st.executeUpdate("delete from reference where Ninc='"+s1+"';");

--------------------------
sachant que "Ninc" est un champ de type INT..
si votre "id" semble à mon "s1" donc cette requete doit marcher tres bien
bon courage
0
ibrog Messages postés 19 Date d'inscription vendredi 15 décembre 2006 Statut Membre Dernière intervention 28 mars 2009
28 mars 2009 à 22:11
Re,
si non vous pouvez essayer ceci:
--------------
String s1 = jTextField1.getText();
....
Statement st = cnx.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet r =st.executeQuery("select * from Ma_Table");

while (r.next())
{
if (r.getInt("Mon_Champ") == Integer.parseInt(s1))
{
//message pour confirmer la suppression:
int o = JOptionPane.showConfirmDialog(this,"Voulez vous vraiment supprimer...","Suppression",JOptionPane.YES_NO_OPTION);
if (o == JOptionPane.YES_OPTION)
{
System.out.println("ok");
r.deleteRow();}
------------------------------------
De même ici "Mon_Champ" est de type INT
j'espere que ça marche :)
0
Rejoignez-nous