bonjour,
j’ai un soucis avec la commande « modifier », les variables prend bien les nouvelles valeurs modifier, mais l’enregistrement ne ce fait pas, mais il affiche le message ‹ Succès, Modification Effectue › pas de modification effectue, dont de correction, quelqu’un aurais une idée a me soumettre, sinon tous le reste fonctionne bien, pour moi l’erreur est au niveau de l’enregistrement de la bdd.
je peut joindre une partie du listing.
merci pour l’aide
cordialement
kyrob
Désolé, nous ne pouvons pas vous aider sans code. Montrez-nous ce que vous avez essayé.
Modifier
def modifier(self):
con = sqlite3.connect("creer.db")
cur = con.cursor()
cur.execute("update formordi set cartemere=?, memoire=?, disk=?, boit=?, processeur=?, adresmac=?, adresse=?, boit1=?, boit2=?, boit3=?, boit4=?, boit5=? where id=?", # id
((self.nom.get(), # Nom / cartemere
self.mail.get(), # Mail / memoire
self.sexe.get(), # sexe / disk
self.boit.get() , # type / boit
self.contact.get(), # contact / processeur
self.dat.get(), # date / adresmac
self.adresse.get("1.0", END), # adresse / adresse
self.id.get(), # id / id
self.boit1.get(), # boite1 / boit1
self.boit2.get(), # boite2 / boit2
self.boit3.get(), # boite3 / boit3
self.boit4.get(), # boite4 / boit4
self.boit5.get()))) # boite5 / boit5
con.commit()
messagebox.showinfo("Succes", "Modification Effectue")
self.afficherRechertat()
self.reini()
con.close()
voici une partie du listing
Les champs dans l’instruction doit être dans le même ordre que les champs dans la table de base de donnés.
Python fait correspondre les champs dans l’ordre, et non pas en recherchant le champ et en faisant correspondre la même variable dans la table.
Utilisez plutôt le formatage suivant:
query = "UPDATE formordi SET cartemere=?, memoire=?, disk=?, boit=?, processeur=?, adresmac=?, adresse=?, boit1=?, boit2=?, boit3=?, boit4=?, boit5=? WHERE id=?"
cur.execute(query, (self.nom.get(),self.mail.get(),self.sexe.get(),self.boit.get(),self.contact.get(),self.dat.get(),self.adresse.get("1.0", END),self.id.get(), self.boit1.get(),self.boit2.get(), self.boit3.get(),self.boit4.get(),self.boit5.get()))
bonjour Isaac,
en envoient le listing je vient de voir l’erreur, j’avais oublier de mettre (‹ self.id.get ›) a la fin (en dernier) .
merci quand même pour l’aide si tu a des conseilles données je suis preneur.
j’ai plus qu’a mettre de l’ordre maintenant.
cordialement
kyrob
Je vois que vous avez bien mis conn.commit()
à la fin de la fonction, c’est bizarre
C’est une bonne solution, j’ai trouver ce petit logiciel que j’ai modifier pour qu’il corresponde a mon projet, j’ai rajouter des fonctions supplémentaires et j’ai oublie de placer (« self.id.get() ») a la fin.
merci pour tout
cordialement
kyrob
Bonjour Michel tous les self… allé a la fin de (« cur.execute ») sur la même ligne j’ai préférer de le mettre les uns en dessous des autres pur meilleur lecture et conn.commit()
est une autre ligne, pourquoi ou le mettre ?
merci pour votre réponse
cordialement
kyrob
Non, non, c’est bien, juste, je me suis dis, pourquoi ton code ne fonctionne pas, sachant que t’as déjà ajouté conn.commit()
sinon, je pense que t’as trouvé la solution.
oui j’ai trouvais la solution
merci quand même
cordialement
kyrob