Не работает функция добавить запись в базу

Помогите пллиз. Выдает ошибку

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
    return self.func(*args)
  File "/Users/luba/PycharmProjects/SQL_database_Tkinter/main.py", line 45, in addData
    stdDatabase_BackEnd.addWorRec(WorID.get(), Firstname.get(), Surname.get(), Posada.get(), Age.get(), Gender.get(), Adress.get(), Mobile.get())
  File "/Users/luba/PycharmProjects/SQL_database_Tkinter/stdDatabase_BackEnd.py", line 18, in addWorRec
    cur.execute("INSERT INTO worker VALUES (NULL,  ?, ?, ?, ?, ?, ?, ?, ?)",WorID, Firstname, Surname , Posada, Age, Gender, Adress, Mobile)
TypeError: function takes at most 2 arguments (9 given)

А вот сам код из файлов

import sqlite3



def workerData():
    con = sqlite3.connect("worker.db")
    cur.execute("CREATE TABLE IF NOT EXISTS worker(id INTEGER PRIMARY KEY, WorID text, Firstname text,  \
                    Surname text, Posada text, Age text, Gender text, Adress text, Mobile text)")

    con.commit()
    con.close()



def addWorRec(WorID, Firstname, Surname, Posada, Age, Gender, Adress, Mobile):
    con = sqlite3.connect("worker.db")
    cur = con.cursor()
    cur.execute("INSERT INTO worker VALUES (NULL,  ?, ?, ?, ?, ?, ?, ?, ?)",WorID, Firstname, Surname , Posada, Age, Gender, Adress, Mobile)
    con.commit()
    con.close()

и еще -

def addData():
    if (len(WorID.get())!= 0):
        stdDatabase_BackEnd.addWorRec(WorID.get(), Firstname.get(), Surname.get(), Posada.get(), Age.get(), Gender.get(), Adress.get(), Mobile.get())
        workerlist.delete(0,END)
        workerlist.insert(END,(WorID.get(), Firstname.get(), Surname.get(), Posada.get(), Age.get(), Gender.get(), Adress.get(), Mobile.get()))


def displayData():
    workerlist.delete(0,END)
    for row in stdDatabase_BackEnd.viewData():
        workerlist.insert(END, row, str(""))

что у меня не так ?


Ответы (1 шт):

Автор решения: Oleksandr Bielov

Попробуйте заменить строку с запросом в базу данных на это:

cursor.execute(str(f"INSERT INTO worker VALUES (NULL, {WorID}, {Firstname}, {Surname}, {Posada}, {Age}, {Gender}, {Adress}, {Mobile})"))
→ Ссылка