Jul-25-2020, 02:07 PM
I did a function to delete a row in sqlite3 and it worked. But the database only shows that the data was exclude when I close and run my program again. I want a way to do delete the data without having to close and open it again to show that it was excluded.
I will post the whole code, but the function that I created to exclude is "def exclude".
I will post the whole code, but the function that I created to exclude is "def exclude".
from tkinter import * import sqlite3 import tkinter.messagebox conn = sqlite3.connect("C:\TkinterVenda\Database\Cows.db") c = conn.cursor() class Database: def __init__(self, master): self.master = master self.heading = Label(master, text="Atualizar Produtos", font = ('arial 40 bold'), bg = 'darkseagreen') self.heading.place(x=400,y=0) self.btn_search = Button (master, text="Pesquisar", width=15, height=2, bg='orange', fg='black', command = self.search, overrelief = 'sunken') self.btn_search.place (x=510, y=120) self.master.bind ('<Return>', self.search) self.Brinco_L = Label (master, text="Brinco:", font=('arial 18 bold'), bg='darkseagreen') self.Brinco_L.place (x=0, y=70) self.Nome_L = Label (master, text="Nome:", font=('arial 18 bold'), bg='darkseagreen') self.Nome_L.place (x=0, y=170) self.Nascimento_L = Label (master, text="Nascimento:", font=('arial 18 bold'), bg='darkseagreen') self.Nascimento_L.place (x=0, y=220) self.Pai_L = Label (master, text="Pai:", font=('arial 18 bold'), bg='darkseagreen') self.Pai_L.place (x=0, y=270) self.Mae_L = Label (master, text="Mãe:", font=('arial 18 bold'), bg='darkseagreen') self.Mae_L.place (x=0, y=320) self.Avo_M_L = Label (master, text="Avô Materno", font=('arial 18 bold'), bg='darkseagreen') self.Avo_M_L.place (x=0, y=370) self.Avo2_M_L = Label (master, text="Avó Materna:", font=('arial 18 bold'), bg='darkseagreen') self.Avo2_M_L.place (x=0, y=420) self.Avo_P_L = Label (master, text="Avô Paterno:", font=('arial 18 bold'), bg='darkseagreen') self.Avo_P_L.place (x=0, y=470) self.Avo2_P_L = Label (master, text="Avó Paterna:", font=('arial 18 bold'), bg='darkseagreen') self.Avo2_P_L.place (x=0, y=520) self.Registro_L = Label (master, text="Nº de Registro:", font=('arial 18 bold'), bg='darkseagreen') self.Registro_L.place (x=0, y=570) self.Brinco_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Brinco_E.place (x=300, y=70) self.Brinco_E.focus () self.Nome_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Nome_E.place (x=300, y=170) self.Nascimento_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Nascimento_E.place (x=300, y=220) self.Pai_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Pai_E.place (x=300, y=270) self.Mae_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Mae_E.place (x=300, y=320) self.Avo_M_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Avo_M_E.place (x=300, y=370) self.Avo2_M_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Avo2_M_E.place (x=300, y=420) self.Avo_P_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Avo_P_E.place (x=300, y=470) self.Avo2_P_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Avo2_P_E.place (x=300, y=520) self.Registro_E = Entry (master, width=25, font=('arial 18 bold'), bg='moccasin') self.Registro_E.place (x=300, y=570) self.btn_add = Button(master, text = "Atualizar", width=18, height = 2, bg='steelblue',fg = 'black', command = self.update, overrelief = 'sunken') self.btn_add.place (x=300, y=650) self.exclude = Button (master, text="Deletar", width=18, height=2, bg='red', command = self.exclude, overrelief = 'sunken') self.exclude.place (x=450, y=650) def search(self): sql = "SELECT * FROM Cadastro WHERE Brinco = ?" result = c.execute(sql, (self.Brinco_E.get(),)) for r in result: self.n1 = r[0]#brinco self.n2 = r[1]#nome self.n3 = r[2]#nascimento self.n4 = r[3]#pai self.n5 = r[4]#mae self.n6 = r[5]#avô materno self.n7 = r[6]#avó materna self.n8 = r[7]#avô paterno self.n9 = r[8]#avó paterna self.n10 = r[9]#registro conn.commit() self.Brinco_E.delete(0, END) self.Brinco_E.insert(0, str(self.n1)) self.Nome_E.delete (0, END) self.Nome_E.insert (0, str (self.n2)) self.Nascimento_E.delete(0, END) self.Nascimento_E.insert(0, str(self.n3)) self.Pai_E.delete(0, END) self.Pai_E.insert(0, str(self.n4)) self.Mae_E.delete(0, END) self.Mae_E.insert(0, str(self.n5)) self.Avo_M_E.delete(0, END) self.Avo_M_E.insert(0, str(self.n6)) self.Avo2_M_E.delete(0, END) self.Avo2_M_E.insert(0, str(self.n7)) self.Avo_P_E.delete(0, END) self.Avo_P_E.insert(0, str(self.n8)) self.Avo2_P_E.delete(0, END) self.Avo2_P_E.insert(0, str(self.n9)) self.Registro_E.delete(0, END) self.Registro_E.insert(0, str(self.n10)) def update(self): self.u1 = self.Brinco_E.get() self.u2 = self.Nome_E.get() self.u3 = self.Nascimento_E.get() self.u4 = self.Pai_E.get() self.u5 = self.Mae_E.get() self.u6 = self.Avo_M_E.get() self.u7 = self.Avo2_M_E.get() self.u8 = self.Avo_P_E.get() self.u9 = self.Avo2_P_E.get () self.u10 = self.Registro_E.get () if self.u2 =='' and self.u3 =='' and self.u4 =='' and self.u5 =='' and self.u6 =='' and self.u7 =='' and self.u8 =='': tkinter.messagebox.showinfo("PROVEDOR", "FAVOR PREENCHER AO MENOS UM CAMPO PARA A ATUALIZAÇÃO") else: query = "UPDATE Cadastro SET Brinco = ?, Nome = ?, Nascimento = ?, Pai = ?, Mae = ?, AvoM = ?, Avo2M = ?, AvoP = ?, Avo2P = ?, Registro = ? WHERE Brinco = ?" c.execute(query, (self.u1, self.u2, self.u3, self.u4, self.u5, self.u6, self.u7, self.u8, self.u9, self.u10, self.Brinco_E.get(),)) conn.commit() tkinter.messagebox.showinfo("PROVEDOR", "A atualização foi feita com sucesso!") self.limpar() def limpar(self): self.Brinco_E.delete (0, END) self.Nome_E.delete (0, END) self.Nascimento_E.delete (0, END) self.Pai_E.delete (0, END) self.Mae_E.delete (0, END) self.Avo_M_E.delete (0, END) self.Avo2_M_E.delete(0,END) self.Avo_P_E.delete(0, END) self.Avo2_P_E.delete (0, END) self.Registro_E.delete (0, END) def exclude (self): if self.Brinco_E =='': tkinter.messagebox.showinfo("PROVEDOR", "FAVOR PREENCHER O NOME DO PRODUTO A SER DELETADO") else: resultado = tkinter.messagebox.askyesno('Provedor', 'Deseja realmente deletar o item?', icon = 'warning') if resultado == True: deletar = "DELETE FROM Cadastro WHERE Brinco = ?" c.execute(deletar,(self.Brinco_E.get(),)) conn.commit () self.limpar () tkinter.messagebox.showinfo("PROVEDOR", "Os dados foram deletados com sucesso!") root = Tk() b = Database(root) root.geometry("1366x768+0+0") root.title("ATUALIZAR/DELETAR") root.configure(bg = "darkseagreen") root.mainloop()