我将Sqlite3与python结合使用,并使用名为tblScheduledWork的表创建数据库。当我运行脚本时,它会打开一个tkinter GUI,并在其中填充表单详细信息,然后单击“提交”时,它将运行我的函数回调。但是,由于某种原因,它会在我运行程序时立即在Action_time列和// chedched_date列中仅带有-的位置添加一个条目,正如您在代码中所看到的那样,加入这些符号时,我唯一使用这些符号的地方是一些字符串一起输入到“操作时间”和“预定日期”两列中。
def callback():
c.execute('''CREATE TABLE IF NOT EXISTS tblScheduledWork
(Job_ID INTEGER PRIMARY KEY UNIQUE, Action_Time TEXT, Scheduled_Date TEXT, Ticket_Id INT, Client TEXT,
To_Do TEXT, Shift TEXT, Completed TEXT, Notes TEXT, UNIQUE (Ticket_Id))''')
entries = []
action_time = str(action.get() + ' - ' + action2.get())
scheduled_date = str(scheduled_day.get() + '/' + scheduled_month.get() + '/' + scheduled_year.get())
ticket_id = ticket.get()
client_name = client.get()
to_do = todo.get()
shift_time = shift.get()
completed_yesno = completed.get()
notes_yesno = notes.get()
entries.append((action_time, scheduled_date, ticket_id, client_name, to_do, shift_time, completed_yesno, notes_yesno))
c.executemany('''INSERT OR IGNORE INTO tblScheduledWork (Action_Time, Scheduled_Date, Ticket_Id, Client,
To_Do, Shift, Completed, Notes) VALUES
(?,?,?,?,?,?,?,?)''', entries)
conn.commit()
答案 0 :(得分:2)
这只是一个猜测,因为您忘记显示可能相关的代码片段,该片段将回调分配给tkinter事件。
我想,您是在callback()
而不是callback
的一个地方写的
在您的回调函数中添加一条print语句,您可能会看到,该回调仅在您要指定要调用的函数的那一刻被调用一次,然后在您填写该函数的表单时被调用一次。不再调用,但是会收到错误消息。
也许我错了,但理想情况下,您应该编写最简单的完整程序,使我们能够重现错误