IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

sqlite3.OperationalError: no such table: [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Country Finance Manager
    Inscrit en
    Juin 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Country Finance Manager

    Informations forums :
    Inscription : Juin 2014
    Messages : 38
    Points : 35
    Points
    35
    Par défaut sqlite3.OperationalError: no such table:
    Bonjour le forum,

    Je vous écris parce que je me forme sur tkinter et sqlite et je me retrouve dans l'impasse.

    Je cherche à faire une application qui enregistre sur une database les données rempli dans le Userform. Seulement j'ai ce message d'erreur qui revient tout le temps :

    File "c:/Users/User/Desktop/Building a GUI for a Database App.py", line 47, in submit
    'zipcode' :zipcode.get()})
    sqlite3.OperationalError: no such table: addresses
    Mon code est en dessous (je vous mets l'intégralité au cas ou j'aurais manqué quelque chose) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    from tkinter import *
    from PIL import ImageTk, Image
    import sqlite3
    import os.path
     
    root = Tk()
    root.title("Zbraaaa")
    root.geometry("400x400") #size of the box we create
     
    # Databases
     
    # Create a database or to connect to one
    Base_dir = os.path.dirname(os.path.abspath(__file__))
    db_path = os.path.join(Base_dir,"address_book.db")
     
    conn = sqlite3.connect(db_path)
    # Create cursor
    c = conn.cursor()  
     
    # Create table
    '''
    c.execute("""CREATE TABLE adresses (
                    first_name text,
                    last_name text,
                    address text,
                    city text,
                    state text,
                    zipcode integer
                    )""")
    '''
     
    # Create submit function for database
    def submit():
            # Create a database or to connect to one
            conn = sqlite3.connect(db_path)
            # Create cursor
            c = conn.cursor()   
     
            #Insert Into Table
            c.execute("INSERT INTO addresses VALUES (:f_name, :l_name, :address, :city, :state, :zipcode)",
                    {
                         'f_name'  :f_name.get(),
                         'l_name'  :l_name.get(),
                         'address' :address.get(),
                         'city'    :city.get(),
                         'state'   :state.get(),
                         'zipcode' :zipcode.get()})
     
            # Commit Changes
            conn.commit()
     
            # Close Connect
            conn.close()
     
            #Clear the Text Boxes
            f_name.delete(0,END)
            l_name.delete(0,END)
            address.delete(0,END)
            city.delete(0,END)
            state.delete(0,END)
            zipcode.delete(0,END)
     
     
    # Create Query function
    def query():
            # Create a database or to connect to one
            conn = sqlite3.connect("address_book.db")
            # Create cursor
            c = conn.cursor()
     
            # Query the database
            c.execute("SELECT * , OID  FROM addresses")
            records = c.fetchall() #fetchmany, fetchone, fetchall
            print(records)
     
            # Commit Changes
            conn.commit()
     
            # Close Connect
            conn.close()
     
    # Create Text Boxes
    f_name =Entry(root,width=30)
    f_name.grid(row=0,column=1,padx=20)
    l_name =Entry(root,width=30)
    l_name.grid(row=1,column=1,padx=20)
    address =Entry(root,width=30)
    address.grid(row=2,column=1,padx=20)
    city =Entry(root,width=30)
    city.grid(row=3,column=1,padx=20)
    state =Entry(root,width=30)
    state.grid(row=4,column=1,padx=20)
    zipcode =Entry(root,width=30)
    zipcode.grid(row=5,column=1,padx=20)
     
    # Create Text Box Labels
    f_name_label = Label(root,text="First Name")
    f_name_label.grid(row=0,column=0)
    l_name_label = Label(root,text="Last Name")
    l_name_label.grid(row=1,column=0)
    address_label = Label(root,text="Address")
    address_label.grid(row=2,column=0)
    city_label = Label(root,text="City")
    city_label.grid(row=3,column=0)
    state_label = Label(root,text="State")
    state_label.grid(row=4,column=0)
    zipcode_label = Label(root,text="Zipcode")
    zipcode_label.grid(row=5,column=0)
     
    # Create Submit Button
    submit_btn = Button(root, text="Add record to Database",command=submit)
    submit_btn.grid(row=6,column=0,columnspan=2,padx=10,pady=10,ipadx=100)
     
    # Create a Query Button
    query_btn = Button(root, text="Show Records", command=query)
    query_btn.grid(row=7,column=0,columnspan=2, padx=10, pady=10,ipadx=137)
     
    # Commit Changes
    conn.commit()
     
    # Close Connect
    conn.close()
     
    root.mainloop()

    D'après mes premières recherches il pourrait s'agir de 3 choses (corrigez moi si je me trompe) :

    1. Le nom de la database est faux,
    2. Le fichier de la database ou parent est en lecture seulement,
    3. Soit la table n'existe pas

    Je tiens à préciser que j'ai vérifié le fichier existe, et j'ai aussi éxécuté le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for row in conn.execute('''SELECT "Hello"''')
    print(row):
    afin de vérifier que le problème ne venait pas du fichier mais bien de la table (ce qui semble être le cas).

    Maintenant le nom de la database est le même et le fichier ne semble pas être en lecture seule (comment puis-je en être sur ?)

    Merci d'avance pour votre aide et vos suggestions.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 333
    Points : 36 853
    Points
    36 853
    Par défaut
    Salut,

    Citation Envoyé par Thallhos Voir le message
    Merci d'avance pour votre aide et vos suggestions.
    Lorsque vous avez ce genre d'erreur, il faut commencer par lire le message d'erreur.
    S'il dit no such table: addresses vous vérifiez 3 fois plutôt qu'une que le nom de votre table est correct.
    Quand je lis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # Create table
    '''
    c.execute("""CREATE TABLE adresses (
    je sais déjà qu'il y a un blème.

    Restez "zen", c'est juste une machine qui fait ce que vous avec écrit et qui n'a aucune idée de ce que vous voulez lui faire faire...

    - W

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Country Finance Manager
    Inscrit en
    Juin 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Country Finance Manager

    Informations forums :
    Inscription : Juin 2014
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Bonjour Wiztricks,

    Olala tout bête, merci, c'était bien plus simple que prévu

    Un grand merci à toi,
    Bon weekend,
    Thallhos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Perl et SQLite3 : no such table
    Par The_GuiGui dans le forum SGBD
    Réponses: 2
    Dernier message: 17/10/2016, 16h39
  2. sqlite3.OperationalError: no such column: wchoix
    Par vieux60ans dans le forum SQLite
    Réponses: 2
    Dernier message: 29/07/2013, 23h44
  3. DatabaseError : no such table: MyApp_picture
    Par Tarnaud dans le forum Django
    Réponses: 0
    Dernier message: 23/02/2012, 22h09
  4. error: no such table 'tbl'
    Par redenil dans le forum SQLite
    Réponses: 1
    Dernier message: 03/12/2008, 16h46
  5. no such table: carte alors que cette table existe
    Par Bubble724 dans le forum SQLite
    Réponses: 3
    Dernier message: 13/07/2007, 22h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo