如果輸入欄位留空,我試圖阻止用戶在 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!")
uj5u.com熱心網友回復:
此行為是根據您的代碼。您檢查空白并顯示錯誤訊息messagebox.showerror,但您沒有執行任何操作來終止傳遞此訊息的代碼執行。我想,您可以將所有從 SELECT 查詢開始的代碼放在 ELSE 子句中,以檢查空白。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/511635.html
下一篇:為什么我不能創建第二個表?
