sqlite3.IntegrityError: несоответствие типа данных - PullRequest
1 голос
/ 11 апреля 2020

У меня ошибка (ошибка несоответствия типов данных) при вставке значений в базу данных: код переднего плана, передающий данные в database(back end):

    def add_data():
        if ID_NO.get()!=0:
            Clg_back_end.Add_data(ID_NO.get(),NAME.get(),CLASS.get(),BRANCH.get(),SKILLS.get(),GENDER.get(),C_GPA.get(),PH_NUM.get())
            Clg_List.delete(0,END)
            Clg_List.insert(END,(ID_NO.get(),NAME.get(),CLASS.get(),BRANCH.get(),SKILLS.get(),GENDER.get(),C_GPA.get(),PH_NUM.get()))

Код внутреннего кода:

def Add_data(Id_no,Name,Class,Branch,Skills,Gender,C_G_P_A,Ph_no):
    con=sqlite3.connect('Clg.db')
    cur=con.cursor()
    cur.execute('INSERT INTO Clg VALUES(?,?,?,?,?,?,?,?)',(Id_no,Name,Class,Branch,Skills,Gender,C_G_P_A,Ph_no))
    con.commit()
    con.close()

Ошибка:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Keerthi\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\Keerthi\Desktop\py_learn\Clg_database\Clg_front_end.py", line 48, in add_data
    Clg_back_end.Add_data(ID_NO.get(),NAME.get(),CLASS.get(),BRANCH.get(),SKILLS.get(),GENDER.get(),C_GPA.get(),PH_NUM.get())
  File "C:\Users\Keerthi\Desktop\py_learn\Clg_database\Clg_back_end.py", line 14, in Add_data
    cur.execute('INSERT INTO Clg VALUES(?,?,?,?,?,?,?,?)',(Id_no,Name,Class,Branch,Skills,Gender,C_G_P_A,Ph_no))
sqlite3.IntegrityError: datatype mismatch

1 Ответ

0 голосов
/ 11 апреля 2020

Как видно из сообщения об ошибке, при вводе данных в таблицу происходит несоответствие типов данных. Это может произойти, когда вы пытаетесь вставить значение типа спецификаций c в столбец, который не поддерживает этот тип, и это значение не может быть автоматически преобразовано вашей БД (например, когда вы пытаетесь вставить string значение в столбце типа int).

Попробуйте напечатать типы данных, которые вы пытаетесь загрузить (print(type(Id_no)), print(type(Name)), etc..), и проверьте, совместимо ли это с типом данных столбца вашей таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...