我正處於編寫地址簿應用程序的初級階段。當我運行應用程序並輸入第一個姓氏並點擊添加時,我收到一條錯誤消息。沒有添加到數據庫的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的站點中進行了介紹。 –