sqlite Tkinter在字段为空时向数据库添加条目

lmvvr0a8  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(132)

我试图阻止用户在输入字段留空的情况下在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!")
wlwcrazw

wlwcrazw1#

此行为取决于您的代码。检查空白并显示错误消息messagebox.showerror,但不终止传递此消息的代码执行。我想,您可以将从SELECT查询开始的所有代码放在ELSE子句中,以检查是否有空格。

相关问题