我正在将 Sqlite3 与 python 结合使用,并使用名为 tblScheduledWork 的表创建一个数据库。当我运行脚本时,它会打开一个 tkinter GUI,我用它填写表单详细信息,然后当我单击“提交”时,它会运行我的函数回调。但是,由于某种原因,当我运行程序时,它会在 action_time 列中仅使用 - 和在cheduled_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()
最佳答案
这只是一个猜测,因为您忘记显示可能相关的代码片段,该代码片段将回调分配给 tkinter 事件。
我猜,你在一个地方写了 callback()
而不是 callback
向您的回调函数添加一条打印语句,您可能会看到,该回调仅在您想要指定要调用哪个函数的时刻被调用一次,稍后当您填写该函数的表单时不再调用,但您会收到错误。
也许我错了,但理想情况下你应该编写尽可能简单的完整程序,这样我们就可以重现错误
关于python - Sqlite3 数据库正在添加不应添加的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384626/