Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Deleting data in SQlite3
#1
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".

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()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Basic SQL query using Py: Inserting or querying sqlite3 database not returning data marlonbown 3 1,303 Nov-08-2022, 07:16 PM
Last Post: marlonbown
  Data is deleting korotkovap 1 1,688 Aug-16-2020, 06:57 AM
Last Post: buran
  Adding data to a table in SQLite3 djwilson0495 2 2,999 Aug-15-2020, 02:48 PM
Last Post: djwilson0495
  Find data using a period of time in SQLITE3 SmukasPlays 2 2,143 Jul-30-2020, 02:02 PM
Last Post: SmukasPlays
  sqlite3 database does not save data across restarting the program SheeppOSU 1 3,402 Jul-24-2020, 05:53 AM
Last Post: SheeppOSU
  Deleting a row in SQlite3 SmukasPlays 3 2,003 Jul-23-2020, 05:30 AM
Last Post: ndc85430
  Deleting data in sqlite3 JJ39 3 2,433 Jun-23-2019, 04:39 PM
Last Post: noisefloor
  How can I add some data from file.txt to db.sqlite3 ? Mike Ru 1 3,043 Nov-19-2018, 05:35 AM
Last Post: Mike Ru

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020