簡體   English   中英

使用 sqlite3 和 tkinter 我做了這個小型庫存管理系統,問題是數據庫的條目總是 null

[英]Using sqlite3 and tkinter i have made this small inventory management system, the problem is the entry to the database is always null

該代碼不會添加新元素,而是將空白值添加到數據庫中。 使困惑!

def ProEntry():
        def makeEntry(name,date,dept,amt,amt2,lab,thr):
            conn = sqlite3.connect("database.db")
            cur = conn.cursor()
            cur.execute("INSERT INTO products VALUES(?,?,?,?,?,?,?)",(name.get(), date.get(), dept.get(), amt.get(), amt2.get(), lab.get(), thr.get()))
            conn.commit()
            conn.close()

從這里我開始使用條目小部件向 gui 添加值

    entrywindow = Tk()
    entrywindow.title("New Product Entry")
    namedisp = Label(entrywindow, text="Name Of Product").grid(row=0, column=0)
    name = StringVar()
    nameentry = Entry(entrywindow, textvariable=name).grid(row=0, column=1)

為了檢查單個變量,我使用 name.get() 打印了名稱,但這也輸出了 null 值。

    print(name.get())

    datedisp = Label(entrywindow, text="Date of Purchase (YYYY-MM-DD)").grid(row=1, column=0)
    date = StringVar()
    dateentry = Entry(entrywindow, textvariable=date).grid(row=1, column=1)

    deptdisp = Label(entrywindow, text="Name Of Department(s) seperate with ','").grid(row=2, column=0)
    dept = StringVar()
    deptentry = Entry(entrywindow, textvariable=dept).grid(row=2, column=1)

    amtdisp = Label(entrywindow, text="Amount Purchased").grid(row=3, column=0)
    amt = StringVar()
    amtentry = Entry(entrywindow, textvariable=amt).grid(row=3, column=1)

    amt2disp = Label(entrywindow, text="Amount Installed").grid(row=4, column=0)
    amt2 = StringVar()
    amt2entry = Entry(entrywindow, textvariable=amt2).grid(row=4, column=1)

    labdisp = Label(entrywindow, text="Room number Of Lab(s) seperate with ','").grid(row=5, column=0)
    lab = StringVar()
    labentry = Entry(entrywindow, textvariable=lab).grid(row=5, column=1)

    thrdisp = Label(entrywindow, text="Threshold").grid(row=6, column=0)
    thr = StringVar()
    threntry = Entry(entrywindow, textvariable=thr).grid(row=6, column=1)

    confirm = Button(entrywindow, text="Confirm", command = makeEntry(name,date,dept,amt,amt2,lab,thr)).grid(row=7, column=0)
    exi = Button(entrywindow, text="Exit", command = entrywindow.destroy).grid(row=7, column=1)

    entryWindow.mainloop()

我認為我遇到了這個問題,例如,當您鍵入這行代碼時:

labentry = Entry(entrywindow, textvariable=lab).grid(row=5, column=1)

labentry 值將返回為 None 所以嘗試:

labentry = Entry(entrywindow, textvariable=lab);labentry.grid(row=5, column=1)

希望我幫助了你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM