python - Sqlite3 数据库正在添加不应添加的条目

标签 python python-3.x sqlite

我正在将 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/

相关文章:

iphone - sqlite3_open - 无法打开数据库?

python - 在 python3 中使用 mediainfo 运行 check_output 会产生错误,即使在终端中的相同调用工作正常

python-3.x - 读取由 nan 行分割的数据框,并在 Python 中将它们 reshape 为多个数据框

java - 安卓Q : SQLite database in scoped storage

Android Studio SQLite 游标

python - 以 Python2 和 Python3 兼容的方式舍入 float 并将其转换为整数

python - pandas - 如何将嵌套字典中的数据加载到数据框中?

python - 在 Python 中绘制带有 x y 坐标的颜色图

javascript - Udacity 网络 Python 解释器如何工作?

python - 阅读某些单词之间的内容并打印出中间的内容。 (Python)