python删除变量及其数据_如何根据使用python的变量从数据库表中删除整行

当变量'row\'id'为0,1,2,3等时,我想从数据库表中删除整行。。。。例如:当row_id为1时,我的脚本应该删除值为“1”“2017-11-06”“D”“D”“Good”的行,当为2时删除值为“2”“2017-11-06”“SS”“SS”“Sent to repair”的行

我的数据库表“cards”如下所示:ID, date, card, serial_card, statuscard

"1" "2017-11-06" "D" "D" "Good"

"2" "2017-11-06" "SS" "SS" "Sent to repair"

我试过了:

^{pr2}$

我的全部源代码:from tkinter import *

import sqlite3

import time

import datetime

conn = sqlite3.connect('cards.db')

c = conn.cursor()

class MainWindow():

def __init__(self,master):

self.master=master

self.master.geometry("220x120")

self.master.title('Cards!')

self.button2=Button(self.master,text="Status ASRU Cards",fg='blue',command=self.gotoasru)

self.button2.place(x=50, y=20)

self.button4=Button(self.master,text="Exit",fg='red',command=self.exit)

self.button4.place(x=90, y=60)

def exit(self):

self.master.destroy()

def gotoasru(self):

root2=Toplevel(self.master)

myGUI2=status_asru(root2)

class status_asru():

def __init__(self,master):

self.master=master

self.master.geometry("760x310")

self.master.title('ASRU cards')

self.connection = sqlite3.connect('cards.db')

self.cur = self.connection.cursor()

self.insert()

self.button5=Button(self.master,text="Exit",fg='red',command= self.exit)

self.button5.place(x=340,y=270)

def exit(self):

self.master.destroy()

def insert(self):

self.cur.execute('CREATE TABLE IF NOT EXISTS cards(ID INT AUTO_INCREMENT, date TEXT,card TEXT,serial_card TEXT,statuscard TEXT)')

global insert_data

global exit1

global lb

global readfromdatabase

tipcard=StringVar()

serial_card=StringVar()

statuscard=StringVar()

label1=Label(self.master,text='Insert card type:',fg='black')

label1.place(x=5,y=120)

label2=Label(self.master,text='Insert card SN:',fg='black')

label2.place(x=5,y=140)

label3=Label(self.master,text='Insert card status:',fg='black')

label3.place(x=5,y=160)

label4=Label(self.master,text='Select a card to be deleted from the top list',fg='black')

label4.place(x=440,y=160)

a=Entry(self.master,textvariable=tipcard)

a.place(x=100,y=120)

b=Entry(self.master,textvariable=serial_card)

b.place(x=100,y=140)

var1 = IntVar()

CB1=Checkbutton(self.master, text="Good", variable=var1)

CB1.place(x=100,y=160)

var2 = IntVar()

CB2=Checkbutton(self.master, text="Defect", variable=var2)

CB2.place(x=160,y=160)

var3 = IntVar()

CB3=Checkbutton(self.master, text="Sent to repair", variable=var3)

CB3.place(x=230,y=160)

def insert_data():

timestamp = str(datetime.datetime.now().date())

card=tipcard.get()

SN=serial_card.get()

if var1.get() == 1 and var2.get() == 0 and var3.get() == 0:

status='Good'

c.execute("INSERT INTO cards (date, card, serial_card, statuscard) VALUES (?, ?, ?, ?)",(timestamp, card, SN, status))

conn.commit()

elif var1.get() ==0 and var2.get() == 1 and var3.get() == 0:

status='Defect'

c.execute("INSERT INTO cards (date, card, serial_card, statuscard) VALUES (?, ?, ?, ?)",(timestamp, card, SN, status))

conn.commit()

elif var1.get() ==0 and var2.get() == 0 and var3.get() == 1:

status='Sent to repair'

c.execute("INSERT INTO cards (date, card, serial_card, statuscard) VALUES (?, ?, ?, ?)",(timestamp, card, SN, status))

conn.commit()

elif var1.get() == 1 and var2.get() == 1 and var3.get() == 1:

label5=Label(self.master,text='select only 1 status',fg='red')

label5.place(x=105,y=180)

var1.set(0)

var2.set(0)

var3.set(0)

elif var1.get() == 0 and var2.get() == 0 and var3.get() == 0:

label6=Label(self.master,text='select 1 status',fg='red')

label6.place(x=105,y=180)

var1.set(0)

var2.set(0)

var3.set(0)

elif var1.get() == 1 and var2.get() == 1 and var3.get() == 0:

label7=Label(self.master,text='select only 1 status',fg='red')

label7.place(x=105,y=180)

var1.set(0)

var2.set(0)

var3.set(0)

elif var1.get() == 0 and var2.get() == 1 and var3.get() == 1:

label8=Label(self.master,text='select only 1 status',fg='red')

label8.place(x=105,y=180)

var1.set(0)

var2.set(0)

var3.set(0)

elif var1.get() == 1 and var2.get() == 0 and var3.get() == 1:

label9=Label(self.master,text='select only 1 status',fg='red')

label9.place(x=105,y=180)

var1.set(0)

var2.set(0)

var3.set(0)

lb = Listbox(self.master, width=120, height=6)

scrollbar = Scrollbar(self.master, orient="vertical",command=lb.yview)

scrollbar.pack(side="right", fill="y")

lb.place(x=5,y=5)

def readfromdatabase():

self.cur.execute("SELECT * FROM cards")

return self.cur.fetchall()

data = readfromdatabase()

for index, dat in enumerate(data):

lb.insert("end",'Card Type: '+dat[2]+3*' '+'SN: '+dat[3]+3*' '+'Status: '+dat[4]+3*' '+'Last modification date: '+dat[1] )

self.delete=Button(self.master,text="Delete Card",fg='blue',command = lambda: delete(lb))

self.delete.place(x=520, y=190)

def delete(self):

# Delete from Listbox

selection = lb.curselection()

lb.delete(selection[0])

row_id=selection[0]

print(row_id)

c.execute("DELETE FROM cards WHERE ID = {}".format(row_id))

conn.commit()

self.button4=Button(self.master,text="Insert new card",fg='green',command=insert_data)

self.button4.place(x=100,y=200)

def main():

root=Tk()

GUI=MainWindow(root)

root.mainloop()

if __name__ == '__main__':

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值