python - 有没有办法解决我遇到的这个错误?
问题描述
这是我程序的前端。这是一个从表中删除一组记录的函数。它给了我这个错误:project1Database.deleteRec(sd[0]) NameError: name 'sd' is not defined。我知道这可能是一个小错误,因为我还是编码新手,所以任何事情都可以提供帮助。
def EmployeeRec(event):
global sd
searchEmp = employeelist.curselection()[0]
sd = employeelist.get(searchEmp)
self.txtEmpID.delete(0,END)
self.txtEmpID.insert(0,sd[1])
self.txtFirstname.delete(0,END)
self.txtFirstname.insert(END,sd[2])
self.txtMiddlename.delete(0,END)
self.txtMiddlename.insert(END,sd[3])
self.txtLastname.delete(0,END)
self.txtLastname.insert(END,sd[4])
self.txtDob.delete(0,END)
self.txtDob.insert(END,sd[5])
self.txtNationality.delete(0,END)
self.txtNationality.insert(END,sd[6])
self.txtNI.delete(0,END)
self.txtNI.insert(END,sd[7])
self.txtAddres.delete(0,END)
self.txtAddres.insert(END,sd[8])
self.txtPostcode.delete(0,END)
self.txtPostcode.insert(END,sd[9])
self.txtphonenumber.delete(0,END)
self.txtphonenumber.insert(END,sd[10])
self.txtEmail.delete(0,END)
self.txtEmail.insert(END,sd[11])
self.txtPassportnumber.delete(0,END)
self.txtPassportnumber.insert(END,sd[12])
self.txtPassportexpirydate.delete(0,END)
self.txtPassportexpirydate.insert(END,sd[13])
self.txtgender.delete(0,END)
self.txtgender.insert(END,sd[14])
def deleteData():
if(len(EmpID.get())!=0):
project1Database.deleteRec(sd[0])
clearData()
displayData()
这是后端。这是我的程序的表格。
import sqlite3
#backend
def employeeData():
conn = sqlite3.connect('projectv4.db')
c= conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS employee(EmployeeID INTEGER PRIMARY KEY,EmpID text,
Firstname text,Middlename text, Lastname text,
Dob text, Nationality text, NI text, Addres text, Postcode text, phonenumber text,
Email text, Passportnumber text, Passportexpirydate text,
gender text)""")
conn.commit()
conn.close()
这是我试图从我的前端调用的函数:
def deleteRec(EmployeeID):
conn = sqlite3.connect('projectv4.db')
c= conn.cursor()
c.execute("DELETE FROM employee WHERE EmployeeID = ?", (EmployeeID,))
conn.commit()
conn.close()
解决方案
deleteData
指sd
在初始化之前。假设您的意思与 in 相同的全局变量EmployeeRec
,您需要明确声明它是全局的:
def deleteData():
if(len(EmpID.get())!=0):
global sd #here!
project1Database.deleteRec(sd[0])
clearData()
displayData()
推荐阅读
- node.js - 续集 ORDER BY
- amazon-web-services - 创建 IAM 角色并附加自定义策略
- tensorflow - 如何使用 Densenet/ResNet 使用训练、验证和测试图像实现多标签分类
- kotlin - 使用 Kotlin 在 Android Studio 中按钮推送的触觉反馈
- html - 没有让 tr 与伪类一起工作:nth-child
- c# - Winform: System.ArgumentNullException: 'Value cannot be null. (Parameter 'stream')'
- powershell - 检查多台服务器上的服务状态
- php - 提交、Codeigniter 和 Ajax 后更新和删除不会自动删除或更新
- python - 如何测试 slack api team_join 事件
- html - 如何为输入字段添加默认值