我试图阻止用户在输入字段留空的情况下在tkinter中输入表单,方法是添加一个消息框,通知用户输入内容不能留空。然而,当用户留下空格并按下‘提交’时,第一个错误框弹出,告诉你不能留下空格,但随后它仍会向我的数据库中添加带有空格的值,然后会弹出一个后续框,提示已将一名球员添加到数据库中。我如何修复我的代码,使球员只被添加到数据库中,如果没有空白。以下是我的代码。谢谢
def CreatePlayerProfile():
conn = sqlite3.connect("PlayersDatabase.db")
c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS Players (
First_name text,
Last_name text,
Age text,
Matches Played text,
Goals text,
Assists text,
Position text
)""")
global firstname
global surname
global age
global matches_played
global goals
global assists
global positionn
firstname = firstname_entry.get()
surname = surname_entry.get()
age = age_entry.get()
matches_played = matches_played_entry.get()
goals = goals_entry.get()
assists = assists_entry.get()
positionn = position.get()
if firstname == "" or surname == "" or age == "" or matches_played == "" or goals == "" or assists == "":
messagebox.showerror("Error", "Fields cannot be left blank!")
c.execute('SELECT * FROM Players WHERE First_name ==?',(firstname,))
if c.fetchall():
messagebox.showerror("Error", "User already exists. Did you mean to update?")
else:
c.execute("INSERT INTO Players (First_name, Last_name, Age, Matches, Goals, Assists, Position) VALUES (?,?,?,?,?,?,?)",(firstname, surname, age, matches_played, goals, assists, positionn))
conn.commit()
messagebox.showinfo("Success!", firstname + " " + surname + " has been added successfully!")
1条答案
按热度按时间wlwcrazw1#
此行为取决于您的代码。检查空白并显示错误消息
messagebox.showerror
,但不终止传递此消息的代码执行。我想,您可以将从SELECT查询开始的所有代码放在ELSE子句中,以检查是否有空格。