无法通过Python在Access中删除数据

时间:2018-02-07 14:17:55

标签: python sql sql-delete

无法通过python删除数据。我使用Entry删除。也许Entry它没有用于删除,所以有什么问题?

from tkinter import *
import pypyodbc
import ctypes

#Create connection
con = pypyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/Users/HP/Desktop/PITL;DBQ=C:/Users/HP/Desktop/PITL/PITL.mdb;')
cursor = con.cursor ()

form=Tk ()
form.title ("Add data")
form.geometry ('400x200')

lab_1=Label(form, text="What do you want to delete?")
lab_1.pack ()

en_1=Entry(form, width=20,bd=5)
en_1.pack()


def Add ():
    cursor.execute ("DELETE FROM Laws WHERE Law_name = ?", (en_1.get()))
    con.commit ()
    cursor.close ()
    con.close ()


Button=Button(form, text = 'PUSH ME', command = Add)
Button.pack ()

form.mainloop ()
  

Tkinter回调中的异常回溯(最近一次调用最后一次):
  文件   " C:\用户\ HP \应用程序数据\本地\程序\的Python \ Python36-32 \ lib中\ tkinter__init __ PY&#34 ;,。   第1699行,致电       return self.func(* args)File" C:\ Users \ HP \ Desktop \ PITL \ DELETE.py",第21行,在Add中       cursor.execute(" DELETE FROM Laws WHERE Law_name =?",(en_1.get()))文件   " C:\用户\ HP \应用程序数据\本地\程序\的Python \ Python36-32 \ lib中\站点包\ pypyodbc -1,3,4- py3.6.egg \ pypyodbc.py&#34 ;,   第1475行,执行中       引发TypeError("参数必须在列表,元组或行中#34;)TypeError:参数必须在列表,元组或行中

1 个答案:

答案 0 :(得分:3)

只需写一个元组或行。要确保它是一个元组,请使用逗号:

cursor.execute ("DELETE FROM Laws WHERE Law_name = ?", 
                (en_1.get(), )) #<- this comma