[Tutor] Looking for help in sqlite3 UPDATE and DELETE selection in treeview (ttk tkinter)
Piotr Mazek
pmazek at otwock.pl
Wed May 12 08:46:20 EDT 2021
Welcome Tutor,
I am just a hobbyist, but with need to know more especially in programming
in Python.
I'm writing application to manage sqlite3 database in window made in tkinter
with treeview.
Successfully wrote two functions: to show database, and to add new row.
But stuck on Update and delete selection. I think there are some stupid
mistakes, but can't see them.
Here is part of my code:
def updateRecord():
def updateR():
conn = sqlite3.connect('db_member.db')
c = conn.cursor()
# INSERT into table
# I wish to get values from selection and place them in corresponding Entry
fields, then change some value and save new state
c.execute("UPDATE `member` SET (:mem_id, :firstname, :lastname,
:address)"))
conn.commit()
conn.close()
updateRoot.destroy()
updateRoot = Toplevel()
updateRoot.title("Update record")
updateRoot.iconbitmap('printer.ico')
lbl_fname = Label(updateRoot, text="First Name")
lbl_fname.grid(row=0, column=0, pady=10)
lbl_lname = Label(updateRoot, text="Last Name")
lbl_lname.grid(row=1, column=0, pady=10)
lbl_addr = Label(updateRoot, text="Address")
lbl_addr.grid(row=2, column=0, pady=10)
en_fname = Entry(updateRoot)
en_fname.grid(row=0, column=1, padx=10)
en_lname = Entry(updateRoot)
en_lname.grid(row=1, column=1, padx=10)
en_addr = Entry(updateRoot)
en_addr.grid(row=2, column=1, padx=10)
btn = Button(updateRoot, text="Update", command=updateR)
btn.grid(row=3, column=1, columnspan=2, sticky='we', padx=20)
updateRoot.mainloop()
def deleteRecord():
conn = sqlite3.connect('db_member.db')
c = conn.cursor()
# DELETE from table
# two lines above deletes from treeview only but not from database file
userid = tree.selection()[0]
tree.delete(userid)
# here I have no idea how to delete selected row from database
c.execute("DELETE FROM `member` WHERE mem_id = ?", (userid))
conn.commit()
conn.close()
Can you please tell me how to solve my problem?
Best regards,
Diego
More information about the Tutor
mailing list