繁体   English   中英

如何使用 python 从我的数据库 SQLite 中删除一条记录?

[英]How I can delete a record from my database SQLite using python?

对不起,用意大利语写,我正在尝试使用 python 的 GUI 做一个简单的应用程序,允许插入和删除书籍动漫 ecc 的记录。 我不知道如何执行 function 来删除记录。 有人可以帮助我吗?

我尝试使用相同的方法进行插入和删除,但删除不起作用。 当我启动程序时,它可以正常工作,但是当我按下按钮删除时,它什么都不做。

#IMPORTAZIONE MODULI
from cProfile import label
from cgitb import text
from tkinter import *
import sqlite3
from tkinter import messagebox
from tkinter.ttk import Labelframe
from turtle import width
from numpy import delete

from pandas import wide_to_long

#CREAZIONE DATABASE
conn=sqlite3.connect('MangaManager.db')
    #creazione del cursone
c=conn.cursor()

#CREAZIONE TABELLA
'''c.execute("""CREATE TABLE Record(
    Titolo text,
    Tipo text,
    Valutazione int
    )""")'''



#SEZIONE DEFINIZIONI FUNZIONI
#FUNZIONE INSERT
def insert():
    conn=sqlite3.connect('MangaManager.db')
    c=conn.cursor()
    if Entrate[0].get()!="" and Entrate[1].get()!="" and Entrate[2].get()!="":
        c.execute("""INSERT INTO Record(Titolo, Tipo, Valutazione)
                VALUES (:Titolo, :Tipo, :Valutazione)""",
                {
                    'Titolo':Entrate[0].get(),
                    'Tipo':Entrate[1].get(),
                    'Valutazione':Entrate[2].get()
                })
    else:
        messagebox.showerror("Errore inserimento", "Non hai compilato uno dei campi, non è permesso lasciarne vuoti")
    conn.commit()
    conn.close()
    Entrate[0].delete(0, END)
    Entrate[1].delete(0, END)
    Entrate[2].delete(0, END)

#FUNZIONE RECUPERA REPORT
def RecuperaReport():
    conn=sqlite3.connect('MangaManager.db')
    #creazione del cursone
    c=conn.cursor()
    c.execute('''SELECT *, oid FROM record''')
    reports=c.fetchall()
    lista=[]
    for record in reports:
        lista.append(record[0]+' '+record[1]+' '+str(record[2]))
    conn.commit()
    conn.close()
    return lista

def delete():
    conn=sqlite3.connect('MangaManager.db')
    #creazione del cursone
    c=conn.cursor()
    c.execute('''DELETE FROM record WHERE Titolo=:aaa''',
    {
        'aaa':Entrate[3].get()
    }
    )

#SEZIONE CREAZIONE INTEFRACCIA GRAFICA
#CREAZIONE FINESTRA
f=Tk()
f.title("MyMangAndAnimeManager")
f.geometry("560x560")

#CREAZIONE TITOLO
titolo=Label(f, text="MyMangaAndAnimeManager")
titolo.grid(row=0 ,column=0,columnspan=3, sticky=E+W)

#CREAZIONE BLOCCHI ENTRATA
Entrate=[]
for i in range(0, 3):
    entry=Entry(f, width=27)
    entry.grid(column=i, row=1, padx=(10, 0))
    Entrate.append(entry)

#CREAZIONE ENTRY PER LA CANCELLAZIONE
EtichettaCanc=Label(f, text="Inserire il titolo da cancellare", width=27)
EtichettaCanc.grid(row=5, column=0, columnspan=3, pady=(10,0))

entry=Entry(f, width=27)
Entrate.append(entry)
Entrate[3].grid(row=6, column=0, columnspan=3, pady=(10,0))


BottoneCanc=Button(f, text="Premere per cancellare", command=delete, width=27)
BottoneCanc.grid(row=8, column=0, columnspan=3, pady=(10,0))
#CREAZIONE CONTENITORE LISTA ANIME
Contenitore=Labelframe(f, width=50, height=200)
Contenitore.grid(row=4 ,column=0, pady=(10,0), columnspan=3, sticky=W, padx=(10,0))
for l in RecuperaReport():
    etichetta=Label(Contenitore, text=l)
    etichetta.pack(side=BOTTOM)

#CREAZIONE BOTTONE ENTRATA DATI
B=Button(f, text="Premere per inserire", command=insert, width=27)
B.grid(row=3 ,column=1, pady=10)
#CREAZIONE BOTTONE USCITA DATI
#B2=Button(f, text="Premere per far vedere i dati", command=RecuperaReport, width=27)
#B2.grid(row=5 ,column=1, pady=10)

#FINE DEL LOOP
f.mainloop()

确保在使用.commit()进行编辑后关闭并写入数据库

cursor.execute(query) 方法执行删除查询中存储的操作。

def deleteRecord():
    try:
        sqliteConnection = sqlite3.connect('SQLite_Python.db')
        cursor = sqliteConnection.cursor()
        print("Connected to SQLite")

        # Deleting single record now
        sql_delete_query = """DELETE from SqliteDb_developers where id = 6"""
        cursor.execute(sql_delete_query)
        sqliteConnection.commit()
        print("Record deleted successfully ")
        cursor.close()

    except sqlite3.Error as error:
        print("Failed to delete record from sqlite table", error)
    finally:
        if sqliteConnection:
            sqliteConnection.close()
            print("the sqlite connection is closed")

deleteRecord()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM