Problème avec sqlite et tkinter

Résolu/Fermé
Frewil - Modifié le 13 janv. 2022 à 15:57
 Frewil - 13 janv. 2022 à 15:44
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

<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 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 550
13 janv. 2022 à 13:16
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
0
Merci de ta réponse. J'ai l'impression d'avoir un tout autre problème, mais je n'arrive pas à le cerner.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550 > Frewil
13 janv. 2022 à 14:43
Tu n'obtiens aucun message d'erreur?
0
Frewil > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
13 janv. 2022 à 15:32
Effectivement:
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
0
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()
0