Enregistrement des Donnees dans la base des donnees

Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33174 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Environnement : Python 3.12

Niveau : Débutant

Base de Données : mariaDB (mySQL)

Je tente pour la première fois au cours de mon apprentissage de Python, mais ca bloque ( de la ligne 132 jusqu'à la ligne 148 )

Merci d'avance de votre aide.

Mes lignes de codes sont comme suite :

#Importer Definir source des objets
import sys
import tkinter
import tkinter.ttk
from tkinter import *
from tkinter import messagebox
import customtkinter


# Se connecter avec la Base des Donnees
import mariadb

try:
    conn = mariadb.connect(
    user="mohammed",
    password="hello",
    host="127.0.0.1",
    port=3306,
    database="BDGestion"
)
except mariadb.Error as err:
    print(f"erreur de connexion avec la base de donnees : {err}")
    sys.exit(1)

#Recuperation curseur
cur = conn.cursor()

#Creation de la fenetre principale
Fenetre=Tk()

#Creation de Sous Fenetre

#Sous fenetre = Creation de societe
def Afficher_CreationSte():
    Afficher_CreationSte=tkinter.Toplevel()
    Afficher_CreationSte.title("Creation de Societe")
    Afficher_CreationSte.config(background="#E4DEBE")
    Afficher_CreationSte.iconbitmap("Champs.ico")
    Afficher_CreationSte.geometry('700x350')
    Afficher_CreationSte.minsize(width=400,height=200)

    #Creation de Frame
    maFrame=tkinter.LabelFrame(Afficher_CreationSte,background="#E4DEBE",relief="flat")
    maFrame.grid(padx=20,pady=10)

    maFrame.frame=customtkinter.CTkFrame(maFrame,corner_radius=10)

    #Evenemets
    #Ajouter
    def Ajouter_ZoneSte():
        #Zone_RaisonSociale
        if not Zone_RaisonSociale.get():
            messagebox.showinfo("Information", message="Veuillez saisir la Raison Sociale",parent=maFrame)
            Zone_RaisonSociale.focus_set()
            return
                    
        #Zone_Capital
        if not Zone_Capital.get():
            messagebox.showinfo("Information", message="Veuillez saisir le Capital",parent=maFrame)
            Zone_Capital.focus_set()
            return

        if Zone_Capital.get().isnumeric():
            Zone_IFiscal.focus_set()
        else:
            messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Capital" , parent=maFrame)
            Zone_Capital.focus_set()
            return


        #Zone_IFiscal
        if not Zone_IFiscal.get():
            messagebox.showinfo("Information", message="Veuillez saisir l'Identifiant fiscal",parent=maFrame)
            Zone_IFiscal.focus_set()
            return

        if Zone_IFiscal.get().isnumeric():
            Zone_Statut.focus_set()
        else:
            messagebox.showerror("Erreur de saisie" , message="Erreur de saisie de l'Identifiant fiscal" , parent=maFrame)
            Zone_IFiscal.focus_set()
            return

        #Zone_affiliation
        if not Zone_Affiliation.get():
            messagebox.showinfo("Information" , message="Veuillez saisir le Numero d'Affiliation a la CNSS", parent=maFrame)
            Zone_Affiliation.focus_set()
            return

        if Zone_Affiliation.get().isnumeric():
            Zone_Tel1.focus_set()
        else:
            messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero d'Affiliation a la CNSS" , parent=maFrame)
            Zone_Affiliation.focus_set()
            return

        #Zone_Tel1 et Tel2
        if not Zone_Tel1.get():
            messagebox.showinfo("Information" , message="Veuillez saisir le Numero de Telephone" , parent=maFrame)
            Zone_Tel1.focus_set()
            return

        if Zone_Tel1.get().isnumeric():
            Zone_Tel2.focus_set()
        else:
            messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero de Tel" , parent=maFrame)
            Zone_Tel1.focus_set()
            return

        if Zone_Tel2.get():
            if Zone_Tel2.get().isnumeric():
                Zone_Email.focus_set()
            else:
                messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero de Tel" , parent=maFrame)
                Zone_Tel2.focus_set()
                return
        else:
            Zone_Email.focus_set()

        #Zone_Email
        if not Zone_Email.get():
            messagebox.showinfo("Information" , message="Veuillez saisir l'EMail" , parent=maFrame)
            Zone_Email.focus_set()
            return

        #Zone_Adresse
        if not Zone_Adresse.get():
            messagebox.showinfo("Information" , message="Veuillez saisir l'Adresse" , parent=maFrame)
            Zone_Adresse.focus_set()
            return
        #Enregistrement des donnees

        BaseDeDonnees=mariadb.connect('BDGestion.db')
        curseur=BaseDeDonnees.cursor()

        for BDGestion in Societes:
            curseur.execute("INSERT INTO BDGestion (nom, statutste, ifiscal, ncnss, tel1, tel2, email, adresse) VALUES (
                :Zone_RaisonSociale,
                :Zone_Statut,
                :Zone_IFiscal,
                :Zone_Affiliation,
                :Zone_Tel1,
                :Zone_Tel2,
                :Zone_Email,
                :Zone_Adresse)" , BDGestion)
        BaseDeDonnees.commit()
        idDernierEnregistrement=curseur.lastrowid
        BaseDeDonnees.close()


    #Annuler
    def Annuler_ZoneSte():
        Zone_RaisonSociale.delete(0,END)
        Zone_Capital.delete(0,END)
        Zone_IFiscal.delete(0, END)
        Zone_Affiliation.delete(0, END)
        Zone_Tel1.delete(0, END)
        Zone_Tel2.delete(0, END)
        Zone_Email.delete(0, END)
        Zone_Adresse.delete(0, END)
        Zone_RaisonSociale.focus_set()

    Titre_RaisonSociale = tkinter.Label(maFrame, text="Raison Sociale",background="#E4DEBE")
    Titre_RaisonSociale.grid(row=0,column=1,ipadx=10,sticky="e")

    Zone_RaisonSociale = tkinter.Entry(maFrame, background="#E4DEBE")
    Zone_RaisonSociale=customtkinter.CTkEntry(maFrame,corner_radius=10,width=450)
    Zone_RaisonSociale.focus_set()
    Zone_RaisonSociale.grid(row=0,column=2,sticky="w")

    Statut_Societe=tkinter.Label(maFrame,text="Statut Juridique",background="#E4DEBE")
    Statut_Societe.grid(row=1,column=1,ipadx=10,sticky="e")

    Liste_Statut=["S.A","S.A.R.L","S.N.C","S.F"]
    #Zone_Statut=tkinter.ttk.Combobox(maFrame,values=Liste_Statut,background="#E4DEBE")
    Zone_Statut = customtkinter.CTkComboBox(maFrame, values=Liste_Statut,corner_radius=10)
    Zone_Statut.grid(row=1,column=2,sticky="w")

    Titre_Capital=tkinter.Label(maFrame,text="Capital Social",background="#E4DEBE")
    Titre_Capital.grid(row=2,column=1,ipadx=10,sticky="e")

    Zone_Capital=tkinter.Entry(maFrame,background="#E4DEBE",width=23)
    Zone_Capital=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_Capital.grid(row=2,column=2,sticky="w")

    Titre_Ifiscal = tkinter.Label(maFrame, text="Identifiant Fiscal", background="#E4DEBE")
    Titre_Ifiscal.grid(row=3,column=1,ipadx=10 ,sticky="e")

    Zone_IFiscal=tkinter.Entry(maFrame,background="#E4DEBE",width=23)
    Zone_IFiscal=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_IFiscal.grid(row=3,column=2,sticky="w")

    Titre_Affiliation = tkinter.Label(maFrame, text="Affiliation CNSS", background="#E4DEBE")
    Titre_Affiliation.grid(row=4, column=1, ipadx=10, sticky="e")

    Zone_Affiliation = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
    Zone_Affiliation=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_Affiliation.grid(row=4, column=2, sticky="w")

    Titre_Tel = tkinter.Label(maFrame, text="Telephone", background="#E4DEBE")
    Titre_Tel.grid(row=5, column=1, ipadx=10, sticky="e")

    Zone_Tel1 = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
    Zone_Tel1=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_Tel1.grid(row=5, column=2, sticky="w")

    Zone_Tel2 = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
    Zone_Tel2=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_Tel2.grid(row=6, column=2,sticky="w")

    Titre_Email = tkinter.Label(maFrame, text="E-Mail", background="#E4DEBE")
    Titre_Email.grid(row=7, column=1, ipadx=10, sticky="e")

    Zone_Email = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
    Zone_Email=customtkinter.CTkEntry(maFrame,corner_radius=10)
    Zone_Email.grid(row=7, column=2, sticky="w")

    Titre_Adresse = tkinter.Label(maFrame, text="Adresse", background="#E4DEBE")
    Titre_Adresse.grid(row=8, column=1, ipadx=10, sticky="e")

    Zone_Adresse = tkinter.Text(maFrame, background="#E4DEBE")
    Zone_Adresse=customtkinter.CTkEntry(maFrame,corner_radius=10, width=550,height=40)
    Zone_Adresse.grid(row=8, column=2, sticky="w")

    BoutSte_Ajouter = customtkinter.CTkButton(maFrame,text="Ajouter", corner_radius=10, width=220,command=Ajouter_ZoneSte)
    BoutSte_Ajouter.grid(row=9,column=2,sticky="w",padx=5,pady=5,ipadx=10,ipady=10)


    BoutSte_Annuler=customtkinter.CTkButton(maFrame,text="Annuler",corner_radius=10,width=220,command=Annuler_ZoneSte)
    BoutSte_Annuler.grid(row=9,column=2,sticky="e",padx=5,pady=5,ipadx=10,ipady=10)


#_______________________________________
#Personnaliser la fenetre principale
Fenetre.iconbitmap("Champs.ico")
Fenetre.title("MezApp'S Apprentissage")
Fenetre.config(background="#E4DEBE")
Fenetre.geometry('1080x620')
Fenetre.minsize(width=700,height=400)

#Creation la Barre du Menu
Barre_Menu=Menu(Fenetre)

#Creation Menu deroulant = Fichiers
Menu1=Menu(Barre_Menu,tearoff=0)
Menu1.add_command(label="Ouvrir")
Menu1.add_command(label="Changement de Societe")
Menu1.add_separator()
Menu1.add_command(label="Creation de Societe",command=Afficher_CreationSte)
Menu1.add_command(label="Creation de Campagne")
Menu1.add_separator()
Menu1.add_command(label="Securite")
Menu1.add_command(label="Formater la Base des Donnees")
Menu1.add_separator()
Menu1.add_command(label="Quitter",command=Fenetre.quit)

Barre_Menu.add_cascade(label="Fichiers",menu=Menu1)


#-------------------------------------------------
#Configurer la Barre du Menu
Fenetre.config(menu=Barre_Menu)

#Charger la fenetre principale
Fenetre.mainloop()


Windows / Chrome 121.0.0.0

5 réponses

  1. mamiemando Messages postés 33174 Date d'inscription   Statut Modérateur Dernière intervention   7 945
     

    Bonjour,

    Je ne sais pas trop où tu en es, mais je te recommande de faire une classe permettant de te connecter / déconnecter à la base et de garantir que la connexion est effective avant de faire une requête.

    Par ailleurs, je pense que ton programme va rapidement devenir assez compliqué à maintenir si tu entremêles le code lié à la base et l'interface graphique. Il faut distinguer l'interface (en mode graphique ou en mode texte) de l'accès au données. En outre, il serait bien que tu arrives à faire marcher un script minimal mettant en jeu ta base de données avant de tenter de l'intégrer dans quelque chose de plus grand.

    Voici mes recommandations :

    • Dans tes messages futurs, envoie des code minimal qui permet de reproduire le problème. Ici, il n'est pas clair que tkinter ait un quelconque rapport avec ta table. D'ailleurs travailler sur un exemple minimal te permettra bien souvent d'identifier le problème.
    • Dans ton code, essaye de respecter les conventions de nommage python (voir PEP8)
      • une_variable, une_fonction, une_instance
      • UneClasse
      • UNE_CONSTANTE
    • Commence par essayer d'adapter ce tutoriel à ton cas.
    • Prévois une fonction pour
      • se connecter à la base
      • se déconnecter de la base
      • chaque requête
    • Au démarrage de l'application tu peux tenter d'appeler la fonction de la connexion à la base.
    • Une fois que ça marche, répartis les bouts de code au bons endroits dans ton interface graphique. Celle-ci devrait notamment prévoir des boutons pour :
      • se connecter à la base, qui devrait être inactif si la connexion à la base est effective (curseur non nul)
      • se déconnecter de la base, qui devrait être inactif tant que la connexion n'est pas effective (curseur nul)
      • si la connexion est établie, un bouton par type de requête (ce que tu as commencé à faire), qui devraient être inactifs tant que la connexion n'est pas effective
    • Quand tu effectues une requête, affiche-la dans ton terminal, et essaye de voir si tu parviens à l'exécuter dans un client SQL. Cela te permettra de repérer d'éventuelles erreurs de syntaxe.

    Bonne chance

    1
    1. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
       

      Merci pour les recommandations, sans doute je me forcerai d'y répondre

      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     

    Salut,

    Tu as déjà initié la connexion à la BDD à ta ligne 13 ...  donc que vient faire ici le code 

       BaseDeDonnees=mariadb.connect('BDGestion.db')

    Déplaces tes lignes de connexion à la bdd ( lignes 13 à 26) dans ta fonction afin de pouvoir l'utiliser pour faire ta requête.


    0
  3. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
     

    Re bonjour,

    J'ai deplace mes lignes de codes, mais sans resultat, c'est sur que je n'ai rien compris.

    je vous remets mes codes, et je vous prie de corriger mes erreurs.

    #Importer Definir source des objets
    import sys
    import tkinter
    import tkinter.ttk
    from tkinter import *
    from tkinter import messagebox
    import customtkinter
    
    
    # Se connecter avec la Base des Donnees
    import mariadb
    
    # Enregistrement des donnees
    #RS = mariadb.connect('BDGestion.db')
    curseur=RS.cursor()
    for BDGestion in Societes:
       curseur.execute("INSERT INTO BDGestion (nom,statutste,ifiscal,ncnss,tel1,tel2,email,adresse) VALUES (:Zone_RaisonSociale,:Zone_Statut,:Zone_Affiliation,:Zone_tel1,:Zone_Tel2,:Zone_Email,:Zone_Adresse)" , BDGestion)
       RS.commit()
       IdDernierEnregistrement=curseur.lastrowid
       RS.close()
    
    #_______________________________________________________
    
    try:
        RS = mariadb.connect(
        user="mohammed",
        password="hello",
        host="127.0.0.1",
        port=3306,
        database="BDGestion"
    )
    except mariadb.Error as err:
        messagebox.showerror(f"erreur de connexion avec la base de donnees : {err}")
        RS.close()
    
    
    #Creation de la fenetre principale
    Fenetre=Tk()
    
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       

      Comment penses tu utiliser le cursor de la connexion à la bdd .......  avant ( ?? ) d'avoir ouvert la connexion à la base ?!!

      0
  4. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
     

    Re

    Sincèrement j'ai tenté de me documenter sans résultat. c'est normal, je n'ai aucune formation dans le domaine.

    je vous informe que j.ai crée ma BD dans mariaBD

    BD = bdgestion

    Table = societes (id, nom, statutste,capitalste,ifiscal,ncnss,tel1,tel2,email,adresse)

    mes lignes de codes sont comme suite : 

    le problème se situe entre la ligne 130 et 177

    Merci d'avance pour toute aide 

    #Importer les bibliotheques et Definir source des objets
    import tkinter
    import tkinter.ttk
    from tkinter import *
    from tkinter import messagebox
    import customtkinter
    import mariadb
    
    #_______________________________________________________
    
    try:
        RS = mariadb.connect(
        user="mohammed",
        password="hello",
        host="127.0.0.1",
        port=3306,
        database="bdgestion"
    )
    except mariadb.Error as err:
        messagebox.showerror(f"erreur de connexion avec la base de donnees : {err}")
    
    
    curseur=RS.cursor()
    
    #________________________________________________________________
    
    #Creation de la fenetre principale
    Fenetre=Tk()
    
    #Creation de Sous Fenetre
    
    #Sous fenetre = Creation de societe
    def Afficher_CreationSte():
        Afficher_CreationSte=tkinter.Toplevel()
        Afficher_CreationSte.title("Creation de Societe")
        Afficher_CreationSte.config(background="#E4DEBE")
        Afficher_CreationSte.iconbitmap("Champs.ico")
        Afficher_CreationSte.geometry('700x350')
        Afficher_CreationSte.minsize(width=400,height=200)
    
        #Creation de Frame
        maFrame=tkinter.LabelFrame(Afficher_CreationSte,background="#E4DEBE",relief="flat")
        maFrame.grid(padx=20,pady=10)
    
        maFrame.frame=customtkinter.CTkFrame(maFrame,corner_radius=10)
    
        #Evenemets
        #Ajouter
        def Ajouter_ZoneSte():
            #Zone_RaisonSociale
            if not Zone_RaisonSociale.get():
                messagebox.showinfo("Information", message="Veuillez saisir la Raison Sociale",parent=maFrame)
                Zone_RaisonSociale.focus_set()
                return
                        
            #Zone_Capital
            if not Zone_Capital.get():
                messagebox.showinfo("Information", message="Veuillez saisir le Capital",parent=maFrame)
                Zone_Capital.focus_set()
                return
    
            if Zone_Capital.get().isnumeric():
                Zone_IFiscal.focus_set()
            else:
                messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Capital" , parent=maFrame)
                Zone_Capital.focus_set()
                return
    
    
            #Zone_IFiscal
            if not Zone_IFiscal.get():
                messagebox.showinfo("Information", message="Veuillez saisir l'Identifiant fiscal",parent=maFrame)
                Zone_IFiscal.focus_set()
                return
    
            if Zone_IFiscal.get().isnumeric():
                Zone_Affiliation.focus_set()
            else:
                messagebox.showerror("Erreur de saisie" , message="Erreur de saisie de l'Identifiant fiscal" , parent=maFrame)
                Zone_IFiscal.focus_set()
                return
    
            #Zone_affiliation
            if not Zone_Affiliation.get():
                messagebox.showinfo("Information" , message="Veuillez saisir le Numero d'Affiliation a la CNSS", parent=maFrame)
                Zone_Affiliation.focus_set()
                return
    
            if Zone_Affiliation.get().isnumeric():
                Zone_Tel1.focus_set()
            else:
                messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero d'Affiliation a la CNSS" , parent=maFrame)
                Zone_Affiliation.focus_set()
                return
    
            #Zone_Tel1 et Tel2
            if not Zone_Tel1.get():
                messagebox.showinfo("Information" , message="Veuillez saisir le Numero de Telephone" , parent=maFrame)
                Zone_Tel1.focus_set()
                return
    
            if Zone_Tel1.get().isnumeric():
                Zone_Tel2.focus_set()
            else:
                messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero de Tel" , parent=maFrame)
                Zone_Tel1.focus_set()
                return
    
            if Zone_Tel2.get():
                if Zone_Tel2.get().isnumeric():
                    Zone_Email.focus_set()
                else:
                    messagebox.showerror("Erreur de saisie" , message="Erreur de saisie du Numero de Tel" , parent=maFrame)
                    Zone_Tel2.focus_set()
                    return
            else:
                Zone_Email.focus_set()
    
            #Zone_Email
            if not Zone_Email.get():
                messagebox.showinfo("Information" , message="Veuillez saisir l'EMail" , parent=maFrame)
                Zone_Email.focus_set()
                return
    
            #Zone_Adresse
            if not Zone_Adresse.get():
                messagebox.showinfo("Information" , message="Veuillez saisir l'Adresse" , parent=maFrame)
                Zone_Adresse.focus_set()
                return
            #Enregistrement des donnees
            for bdgestion in societes:
                RS=curseur.execute(""" INSERT INTO societes(
                nom,
                statutste,
                ifiscal,
                ncnss,
                tel1,
                tel2,
                email,
                adresse) VALUES (
                :Zone_RaisonSociale,
                :Zone_Statut,
                :Zone_Ifiscal,
                :Zone_Affiliation,
                :Zone_Tel1,
                :Zone_Tel2,
                :Zone_Email,
                :Zone_Adresse)""", bdgestion.societes)
            RS.commit()
            DernierEnregistrement=curseur.lastrowid
            RS.close()
            
            #Vider les champs de saisie
            Zone_RaisonSociale.delete(0, END)
            Zone_Capital.delete(0, END)
            Zone_IFiscal.delete(0, END)
            Zone_Affiliation.delete(0, END)
            Zone_Tel1.delete(0, END)
            Zone_Tel2.delete(0, END)
            Zone_Email.delete(0, END)
            Zone_Adresse.delete(0, END)
            Zone_RaisonSociale.focus_set()
    
            messagebox.showinfo("Information",message="Donnees enregistrees")
    
    
        #Annuler
        def Annuler_ZoneSte():
            Zone_RaisonSociale.delete(0,END)
            Zone_Capital.delete(0,END)
            Zone_IFiscal.delete(0, END)
            Zone_Affiliation.delete(0, END)
            Zone_Tel1.delete(0, END)
            Zone_Tel2.delete(0, END)
            Zone_Email.delete(0, END)
            Zone_Adresse.delete(0, END)
            Zone_RaisonSociale.focus_set()
    
        Titre_RaisonSociale = tkinter.Label(maFrame, text="Raison Sociale",background="#E4DEBE")
        Titre_RaisonSociale.grid(row=0,column=1,ipadx=10,sticky="e")
    
        Zone_RaisonSociale = tkinter.Entry(maFrame, background="#E4DEBE")
        Zone_RaisonSociale=customtkinter.CTkEntry(maFrame,corner_radius=10,width=450)
        Zone_RaisonSociale.focus_set()
        Zone_RaisonSociale.grid(row=0,column=2,sticky="w")
    
        Statut_Societe=tkinter.Label(maFrame,text="Statut Juridique",background="#E4DEBE")
        Statut_Societe.grid(row=1,column=1,ipadx=10,sticky="e")
    
        Liste_Statut=["S.A","S.A.R.L","S.N.C","S.F"]
        #Zone_Statut=tkinter.ttk.Combobox(maFrame,values=Liste_Statut,background="#E4DEBE")
        Zone_Statut = customtkinter.CTkComboBox(maFrame, values=Liste_Statut,corner_radius=10)
        Zone_Statut.grid(row=1,column=2,sticky="w")
    
        Titre_Capital=tkinter.Label(maFrame,text="Capital Social",background="#E4DEBE")
        Titre_Capital.grid(row=2,column=1,ipadx=10,sticky="e")
    
        Zone_Capital=tkinter.Entry(maFrame,background="#E4DEBE",width=23)
        Zone_Capital=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_Capital.grid(row=2,column=2,sticky="w")
    
        Titre_Ifiscal = tkinter.Label(maFrame, text="Identifiant Fiscal", background="#E4DEBE")
        Titre_Ifiscal.grid(row=3,column=1,ipadx=10 ,sticky="e")
    
        Zone_IFiscal=tkinter.Entry(maFrame,background="#E4DEBE",width=23)
        Zone_IFiscal=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_IFiscal.grid(row=3,column=2,sticky="w")
    
        Titre_Affiliation = tkinter.Label(maFrame, text="Affiliation CNSS", background="#E4DEBE")
        Titre_Affiliation.grid(row=4, column=1, ipadx=10, sticky="e")
    
        Zone_Affiliation = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
        Zone_Affiliation=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_Affiliation.grid(row=4, column=2, sticky="w")
    
        Titre_Tel = tkinter.Label(maFrame, text="Telephone", background="#E4DEBE")
        Titre_Tel.grid(row=5, column=1, ipadx=10, sticky="e")
    
        Zone_Tel1 = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
        Zone_Tel1=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_Tel1.grid(row=5, column=2, sticky="w")
    
        Zone_Tel2 = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
        Zone_Tel2=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_Tel2.grid(row=6, column=2,sticky="w")
    
        Titre_Email = tkinter.Label(maFrame, text="E-Mail", background="#E4DEBE")
        Titre_Email.grid(row=7, column=1, ipadx=10, sticky="e")
    
        Zone_Email = tkinter.Entry(maFrame, background="#E4DEBE",width=23)
        Zone_Email=customtkinter.CTkEntry(maFrame,corner_radius=10)
        Zone_Email.grid(row=7, column=2, sticky="w")
    
        Titre_Adresse = tkinter.Label(maFrame, text="Adresse", background="#E4DEBE")
        Titre_Adresse.grid(row=8, column=1, ipadx=10, sticky="e")
    
        Zone_Adresse = tkinter.Text(maFrame, background="#E4DEBE")
        Zone_Adresse=customtkinter.CTkEntry(maFrame,corner_radius=10, width=550,height=40)
        Zone_Adresse.grid(row=8, column=2, sticky="w")
    
        BoutSte_Ajouter = customtkinter.CTkButton(maFrame,text="Ajouter", corner_radius=10, width=220,command=Ajouter_ZoneSte)
        BoutSte_Ajouter.grid(row=9,column=2,sticky="w",padx=5,pady=5,ipadx=10,ipady=10)
    
    
        BoutSte_Annuler=customtkinter.CTkButton(maFrame,text="Annuler",corner_radius=10,width=220,command=Annuler_ZoneSte)
        BoutSte_Annuler.grid(row=9,column=2,sticky="e",padx=5,pady=5,ipadx=10,ipady=10)
    
    
    #_______________________________________
    #Personnaliser la fenetre principale
    Fenetre.iconbitmap("Champs.ico")
    Fenetre.title("MezApp'S Apprentissage")
    Fenetre.config(background="#E4DEBE")
    Fenetre.geometry('1080x620')
    Fenetre.minsize(width=700,height=400)
    
    #Creation la Barre du Menu
    Barre_Menu=Menu(Fenetre)
    
    #Creation Menu deroulant = Fichiers
    Menu1=Menu(Barre_Menu,tearoff=0)
    Menu1.add_command(label="Ouvrir")
    Menu1.add_command(label="Changement de Societe")
    Menu1.add_separator()
    Menu1.add_command(label="Creation de Societe",command=Afficher_CreationSte)
    Menu1.add_command(label="Creation de Campagne")
    Menu1.add_separator()
    Menu1.add_command(label="Securite")
    Menu1.add_command(label="Formater la Base des Donnees")
    Menu1.add_separator()
    Menu1.add_command(label="Quitter",command=Fenetre.quit)
    
    Barre_Menu.add_cascade(label="Fichiers",menu=Menu1)
    
    
    #-------------------------------------------------
    #Configurer la Barre du Menu
    Fenetre.config(menu=Barre_Menu)
    
    #Charger la fenetre principale
    Fenetre.mainloop()
    0
    1. mamiemando Messages postés 33174 Date d'inscription   Statut Modérateur Dernière intervention   7 945
       

      Tu dis que ton erreur a lieu entre la ligne 130 et 177, ce qui laisse entendre que ta requête SQL est mal formée. Affiche là avec un print. Moi ce qui m'étonne c'est que les valeurs que tu tentent d'insérer sont ne semblent être ni des valeurs numériques, ni des chaînes de caractères.

      Avant de surcharger inutilement le problème avec tkinter, parviens-tu à faire marcher ce bout de code ?

      import mariadb
      
      try:
          conn = mariadb.connect(
              user="mohammed",
              password="hello",
              host="127.0.0.1",
              port=3306,
              database="bdgestion"
          )
      except mariadb.Error as err:
          print(f"Erreur de connexion avec la base de données : {err}")
      
      cursor = conn.cursor()
      nom = "Nom"
      statutste = "Statut"
      ifiscal = "Ifiscal"
      ncnss = "Affiliation"
      tel1 = "0102030405"
      tel2 = "0102030406"
      email = "prenom.nom@foo.fr"
      addresse = "Une adresse"
      query = f"""INSERT INTO societes(
          nom, statutste, ifiscal, ncnss, tel1, tel2, email, adresse
      ) VALUES (
        '{nom}', '{statutste}', '{ifiscal}', '{tel1}', '{tel2}', '{email}', '{adresse}'
      )"""
      print(query)
      cursor.execute(query)
      conn.commit()
      print(f"Last Inserted ID: {cur.lastrowid}")
      conn.close()
      1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Par contre, si tu pouvais changer ton pseudo

    lenouveauapprenti en lenouvelapprenti

    ça piquerait moins les yeux :-)   :-)  :-)

    0