OperationalError: table users has no column named prenom

Bonjour à tous,
On me dit pas de colonne nommée ''prenom'' ?
Ma table a été créée avec colonne prenom
Merci pour l'aide


import sqlite3

conn = sqlite3.connect('testAdresses')

# Créer la table
# --------------

cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users(
     id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
     nom TEXT,
     prenom TEXT,
     rue TEXT,
     num INTERGER,
     ville TEXT,
     codePostal INTERGER,
     age INTEGER
     
    
)
""")
conn.commit()


# Insérer des données
#--------------------

cursor.execute("""
INSERT INTO users(nom, prenom, rue, num, ville, codePostal, age) VALUES(?, ?, ?, ?, ?, ?, ?)""", ("Dupont", "Jean", "Rue de la Gare", 224, "Tournai", 1700, 79))

testAdresses.close()

#Traceback (most recent call last):
  #File "C:/Users/Utilisateur/AppData/Local/Programs/Python/Python37/testAdresses.py", line 30, in <module>
    #INSERT INTO users(nom, prenom, rue, num, ville, codePostal, age) VALUES(?, ?, ?, ?, ?, ?, ?)""", ("Dupont", "Jeaun", "Rue de la Gare", 224, "Tournai", 1700, 79))
# sqlite3.OperationalError: table users has no column named prenom

8 réponses

  1. Bonjour Lecorse,

    Pour les balises, il faut absolument que le code soit à l'intérieur de code python et

    /code, donc il y a en premier code python , puis le code, puis /code

    Tu dois voir ceci (j'ai enlevé les < et les > pour que ca ne soit pas pris en compte tout de suite, mais normalement il y en a)

    code python
    cursor.execute('select * from users')
    /code

    Et quand tu valides ton message, tu dois voir cela:

          cursor.execute('select * from users')
    


    Pour les {} et [], c'est tout simplement le formatage en Python:

    print('id = {0} nom = {1}'.format(row[0], row[1]))

    'id = {0} nom = {1}' c'est la chaine de caractères avec ce que l'on veut afficher

    .format(row[0], row[1]), ce sont les valeurs à afficher

    {0} est associé à row[0] et {1} est associé à row[1] , donc on va afficher row[0] en 1er, puis

    row[1], ca doit afficher ceci:

    id = 1 nom = Dupont

    On peut aussi mettre dans les accolades le type de variable associée, par exemple

    print('id = {:d} nom = {:s}'.format(row[0], row[1]))

    {:d} : id est un integer

    {:s} : nom est une string

    Tu peux sélectionner sur un id donné:

    select * from users where id = 3
    0