我正处于编写地址簿应用程序的初级阶段。当我运行应用程序并输入第一个姓氏并点击添加时,我收到一条错误消息。没有添加到数据库的getts。遇到我的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()
TIA,
加布里埃尔
提示:您不能在数据库中存储小部件,只能存储在小部件中的值。问自己什么是first_name和last_name的数据类型。 –
我意识到我实际上在做的是试图在数据库中存储一个小部件。我需要做的是将小部件的名字和姓氏存储到数据库中?我会怎么做? –
阅读'Entry'小工具的一些文档,并搜索这个网站。您提出的问题已被多次询问,并在许多记录如何使用tkinter的站点中进行了介绍。 –