Я нахожусь на начальной стадии написания приложения адресной книги. Когда я запустил приложение и ввел имя, фамилию и нажмите «Добавить», я получаю сообщение об ошибке. В базу данных ничего не добавлено.Проблемы с моим приложением Tkinter/Sqlite Python
Вот сообщение об ошибке:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__
return self.func(*args)
File "address.py", line 13, in addName
(last_name, first_name))
sqlite3.InterfaceError: Error binding parameter 1 - probably unsupported type.
Вот мой код:
from tkinter import *
from tkinter import ttk
import sqlite3
conn = sqlite3.connect('address.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS address (lastName TEXT, firstName TEXT)''')
conn.commit
def addName(event):
c.execute("INSERT INTO address (lastName, firstName) VALUES (?,?)",
(last_name, first_name))
conn.commit()
root = Tk()
root.title('Address Book')
Label(root, text='First Name').grid(row=0, sticky=W, padx=4)
first_name = Entry(root)
first_name.grid(row=0, column=1, sticky=E, pady=4)
Label(root, text='Last Name').grid(row=1, sticky=W, padx=4)
last_name = Entry(root).grid(row=1, column=1, sticky=E, pady=4)
getNameButton = Button(root, text='Add')
getNameButton.bind('<Button-1>', addName)
getNameButton.grid(row=3, column=1, sticky=E)
root.mainloop()
ТИА,
Gabriel
Подсказка: вы не можете сохранить виджет в базе данных, только значение, хранящееся в виджетах. Спросите себя, что такое тип данных first_name и last_name. –
Я понимаю, что я эффективно делаю, пытаясь сохранить виджет в базе данных. Что мне нужно сделать, так это сохранить имя и фамилию от виджета в базе данных? Как мне это сделать? –
Прочитайте документацию по виджету 'Entry' и выполните поиск на этом сайте. Вы задаете вопросы, которые были заданы несколько раз и описаны во многих сайтах, в которых описывается, как использовать tkinter. –