Problème avec sqlite et tkinter
Résolu
Frewil
-
Frewil -
Frewil -
Bonjour,
Avec le cde Python ci-dessous, j'ecrit toujours 0 dans la base de donnée et pas les valeurs entrées dans les champs correspondants.
Auriez-vous une idée?
Merci beaucoup
Cordialement
Avec le cde Python ci-dessous, j'ecrit toujours 0 dans la base de donnée et pas les valeurs entrées dans les champs correspondants.
Auriez-vous une idée?
Merci beaucoup
Cordialement
<import sqlite3
from tkinter import *
from tkcalendar import DateEntry
def send_data_to_electricite_table():
connection = sqlite3.connect("Appartement_database.db")
print("Database created or connected successfully")
cursor = connection.cursor()
cursor.execute(
"CREATE TABLE IF NOT EXISTS Electricite (date_facture_elec TEXT, montant_facture_elec TEXT)")
print("Electricite table created")
cursor.execute("INSERT INTO Electricite (date_facture_elec, montant_facture_elec) VALUES(?, ?)", (date_facture_electricite.get(), montant_facture_electricite.get()))
print("Electricity table updated successfully")
connection.commit()
connection.close()
window_electricite = Tk()
window_electricite.title("Dépenses en électricité")
window_electricite.geometry("800x500")
window_electricite.config(background="lightgrey")
# date entry
label_date_facture_elec = Label(window_electricite, text="Date de la facture", bg="lightgrey")
label_date_facture_elec.place(x=20, y=80)
entry_date_facture_elec = DateEntry(window_electricite, selectmode="day", textvar=date_facture_electricite)
entry_date_facture_elec.place(x=130, y=80)
# entry of the invoice amount
label_montant_facture_elec = Label(window_electricite, text="Montant", bg="lightgrey")
label_montant_facture_elec.place(x=20, y=110)
entry_montant_facture_elec = Entry(window_electricite, width=30, textvar=montant_facture_electricite)
entry_montant_facture_elec.place(x=130, y=110)
bouton1 = Button(window_electricite, text="Ajouter", command=send_data_to_electricite_table)
bouton1.place(x=50, y=180)
bouton2 = Button(window_electricite, text="Supprimer")
bouton2.place(x=112, y=180)
bouton1 = Button(window_electricite, text="Modifier")
bouton1.place(x=190, y=180)
window_electricite.mainloop()
create_window_electricite()
create_window_electricite()>
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu envisagé de faire print() des valeurs avant insertion?
Merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
Je pense que je viens de trouver la solution.
J'ai mal positionner mes variables dans le code.
Le code suivant fonctionne:
import sqlite3 from tkinter import * from tkcalendar import DateEntry def send_data_to_electricite_table(): connection = sqlite3.connect("Appartement_database.db") print("Database created or connected successfully") cursor = connection.cursor() cursor.execute( "CREATE TABLE IF NOT EXISTS Electricite (date_facture_elec TEXT, montant_facture_elec TEXT)") print("Electricite table created") date_facture_electricit = entry_date_facture_elec.get() montant_facture_electricit = entry_montant_facture_elec.get() cursor.execute("INSERT INTO Electricite (date_facture_elec, montant_facture_elec) VALUES(?, ?)", (date_facture_electricit, montant_facture_electricit)) print("Electricity table updated successfully") connection.commit() connection.close() window_electricite = Tk() window_electricite.title("Dépenses en électricité") window_electricite.geometry("800x500") window_electricite.config(background="lightgrey") # date entry label_date_facture_elec = Label(window_electricite, text="Date de la facture", bg="lightgrey") label_date_facture_elec.place(x=20, y=80) entry_date_facture_elec = DateEntry(window_electricite, selectmode="day") entry_date_facture_elec.place(x=130, y=80) # entry of the invoice amount label_montant_facture_elec = Label(window_electricite, text="Montant", bg="lightgrey") label_montant_facture_elec.place(x=20, y=110) entry_montant_facture_elec = Entry(window_electricite, width=30) entry_montant_facture_elec.place(x=130, y=110) bouton1 = Button(window_electricite, text="Ajouter", command=send_data_to_electricite_table) bouton1.place(x=50, y=180) bouton2 = Button(window_electricite, text="Supprimer") bouton2.place(x=112, y=180) bouton1 = Button(window_electricite, text="Modifier") bouton1.place(x=190, y=180) window_electricite.mainloop() create_window_electricite() create_window_electricite()