Enregistrement des Donnees dans la base des donnees

Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 - 1 févr. 2024 à 22:19
mamiemando Messages postés 33264 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 septembre 2024 - 6 févr. 2024 à 19:18

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

A voir également:

5 réponses

mamiemando Messages postés 33264 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 septembre 2024 7 777
5 févr. 2024 à 18:03

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
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
5 févr. 2024 à 20:02

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

0
jordane45 Messages postés 38238 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 septembre 2024 4 689
1 févr. 2024 à 22:25

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
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
2 févr. 2024 à 17:31

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
jordane45 Messages postés 38238 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 septembre 2024 4 689
2 févr. 2024 à 19:28

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

0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
3 févr. 2024 à 22:36

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
mamiemando Messages postés 33264 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 septembre 2024 7 777
Modifié le 6 févr. 2024 à 19:20

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
6 févr. 2024 à 18:15

Bonjour,

Par contre, si tu pouvais changer ton pseudo

lenouveauapprenti en lenouvelapprenti

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

0