如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?
Posted
技术标签:
【中文标题】如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?【英文标题】:What to do to ensure that values from Tkinter form is being entered into MySQL table instead of getting an error message? 【发布时间】:2021-12-06 16:04:37 【问题描述】:我制作了一个 tkinter 表单,它应该将值输入到 mysql 表中。但是,当我在表单中输入适当的值时,我会收到我创建的错误消息(“所有字段都是必需的”)。在下面的代码中,a=task_name.get() [string], b=student_subject.get() [string], c=due_date.get() [int], d=priority.get() [int], e =task_type.get() [字符串],和 f=date_added.get() [int]。
def action():
if a=="" or b=="" or e=="":
messagebox.showerror("Error" , "All fields are required" , parent = wintask)
else:
con = mysql.connect(host="localhost", user="root", password="12345678", database="ibcomputerscience")
cur = con.cursor()
cur.execute("INSERT INTO task_info(student_subject, task_name, due_date, priority, task_type, date_added) VALUES(%s,%s,%s,%s,%s,%s)",(a, b, c, d, e, f))
con.commit()
con.close()
messagebox.showerror("Success" , "Task Added Successfully", parent = wintask)
我将不胜感激任何帮助/见解。谢谢!
【问题讨论】:
请提供minimal reproducible example。你也试过打印出a
,b
,c
,...?他们是你所期望的吗?
根据代码,如果你得到提到的错误,很明显a
或b
或e
是空字符串。
【参考方案1】:
您需要在action()
中调用那些.get()
:
def action():
a = student_subject.get()
b = task_name.get()
c = due_date.get()
d = priority.get()
e = task_type.get()
f = date_added.get()
if a == "" or b == "" or e == "":
messagebox.showerror("Error", "All fields are required", parent=wintask)
else:
con = mysql.connect(host="localhost", user="root", password="12345678", database="ibcomputerscience")
cur = con.cursor()
cur.execute("INSERT INTO task_info(student_subject, task_name, due_date, priority, task_type, date_added) VALUES(%s,%s,%s,%s,%s,%s)",(a, b, c, d, e, f))
con.commit()
con.close()
messagebox.showinfo("Success", "Task Added Successfully", parent=wintask)
【讨论】:
以上是关于如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?的主要内容,如果未能解决你的问题,请参考以下文章
在Spring boot中,如何将表单动作中的jsp表单输入的值作为参数传递