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
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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
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:
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()
line 30, in <module>
entry_date_facture_elec = DateEntry(window_electricite, selectmode="day", textvar=date_facture_electricite)
NameError: name 'date_facture_electricite' is not defined