Я создаю таблицу в базе данных, и мне нужно вставить значения, введенные в запись в базе данных.Я пробую разные вещи с недели.Я новичокМожет кто-нибудь найти ошибку?
Я перепробовал все виды вещей, используя переменную и вставляя значения напрямую, используя .get (), а также используя?заполнитель.
from tkinter import*
import sqlite3
conn = sqlite3.connect("database.db")
cu = conn.cursor()
cu.execute("""CREATE TABLE IF NOT EXISTS student(
ID PRIMARY KEY NOT NULL,
DATE TEXT NOT NULL,
ADDRESS TEXT NOT NULL,
MOBILE NUMBER REAL NOT NULL,
NAME TEXT NOT NULL,
QUALIFICATION TEXT NOT NULL,
EMAIL TEXT NOT NULL,
GENDER TEXT NOT NULL
)""")
conn.commit()
print("Student Table successfully created ")
cu.execute("""CREATE TABLE IF NOT EXISTS employee(
ID PRIMARY KEY NOT NULL,
DATE TEXT NOT NULL,
ADDRESS TEXT NOT NULL,
MOBILE NUMBER REAL NOT NULL,
NAME TEXT NOT NULL,
QUALIFICATION TEXT NOT NULL,
EMAIL TEXT NOT NULL,
GENDER TEXT NOT NULL
)""")
conn.commit()
conn.close()
print("Employee Table successfully created ")
def stud_win():
studwin=Toplevel(root)
studwin.title('Student registration')
studwin.resizable(0,0)
a = Label(studwin ,text = "ID" ).grid(row = 0,column = 0)
b = Label(studwin ,text = "Date").grid(row = 1,column = 0)
c = Label(studwin ,text = "Address").grid(row = 2,column = 0)
d = Label(studwin ,text = "Mobile Number").grid(row = 3,column = 0)
e = Label(studwin, text = "Name").grid(row=0, column=2)
f = Label(studwin, text = "Qualification").grid(row=1, column=2)
g = Label(studwin ,text = "Email").grid(row = 2,column = 2)
h = Label(studwin, text = "Gender").grid(row = 3, column= 2)
ID=IntVar
a1 = Entry(studwin, textvariable=ID).grid(row = 0,column = 1)
Date = StringVar
b1 = Entry(studwin, textvariable=Date).grid(row = 1,column = 1)
Address = StringVar
c1 = Entry(studwin,textvariable=Address).grid(row = 2,column = 1)
Number = StringVar
d1 = Entry(studwin,textvariable=Number).grid(row = 3,column = 1)
Name = StringVar
e1 = Entry(studwin,textvariable=Name).grid(row = 0,column = 3)
Qualification = StringVar
f1 = Entry(studwin,textvariable=Qualification).grid(row = 1,column = 3)
Email = StringVar
g1 = Entry(studwin,textvariable=Email).grid(row = 2,column = 3)
gender = StringVar()
R1 = Radiobutton(studwin, text="Male", value="male", var=gender)
R2 = Radiobutton(studwin, text="Female", value="female", var=gender)
R1.grid(row = 3,column = 3)
R2.grid(row = 3,column = 4)
def btn_click1():
ID = ID.get()
Date = Date.get()
Address = Address.get()
Number = Number.get()
Name = Name.get()
Qualification= Qualification.get()
Email = Email.get()
gender = gender.get()
conn = sqlite3.connect('database.db')
cu=conn.cursor()
cu.execute('INSERT INTO student (ID,Date,Address,Number,Name,Qualification,Email,gender) VALUES(?,?,?,?,?,?,?,?)',
(ID, Date, Address, Number, Name,Qualification,Email,gender,))
conn.commit()
i = Button(studwin, text="submit", command=btn_click1).grid(row=4, columnspan=4)
studwin.mainloop()
root=Tk()
root.title("Registration form")
root.resizable(0,0)
menubar=Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Student", command=stud_win)
filemenu.add_command(label="Employee")
menubar.add_cascade(label="Register", menu=filemenu)
form_menu = Menu(menubar, tearoff=0)
form_menu.add_command(label="Enrollment form")
menubar.add_cascade(label="Transaction", menu=form_menu)
exitmenu=Menu(menubar, tearoff=0)
exitmenu.add_command(label="Exit App", command=root.quit)
menubar.add_cascade(label="Exit", menu=exitmenu)
root.config(menu=menubar)
root.mainloop()
Ошибка
Исключение при обратном вызове Tkinter (последний вызов последнего): Файл "F: \ Python3 \ lib \ tkinter__init__.py ", строка 1705, в вызов return self.func (* args) Файл" F: / Python Projects / Registration form.py ", строка 71, в btn_click1 ID = ID.get () UnboundLocalError:локальная переменная 'ID', указанная перед присваиванием