from tkinter import * import sqlite3 import time def clickok(): con=sqlite3.connect('studentrecords.db') c=con.cursor() num=e.get() num=int(num) print(num) try: c.execute(f'DELETE FROM StudentData WHERE Roll={num}') con.commit() button.config(command=lambda:button.pack_forget()) l2=Label(deletewin,fg="red",text="Deleted Successfully",font=("Helvetica",10)).place(x=6,y=115) # l2=Label(deletewin,fg="red",text="No Such Record Found",font=("Helvetica",10)).place(x=6,y=115) finally: deletewin.after(3000,lambda:deletewin.destroy()) def recdelete(): global deletewin deletewin=Toplevel(root) global e e=Entry(deletewin,font=("Helvetica",12)) e.place(x=5,y=40) l=Label(deletewin,font=("Helvetica",12),text="Please Enter Roll No",fg="purple").place(x=5,y=10) global button button=Button(deletewin,text="OK",command=lambda:clickok(),font=("Helvetica",10), bg="lightpink",fg="purple",borderwidth=0).place(x=100,y=150) def yesclk(): con=sqlite3.connect('studentrecords.db') c=con.cursor() c.execute("DELETE FROM StudentData") newwind.destroy() con.commit() con.close() def clearall(): global newwind newwind=Toplevel(root) newwind.geometry('200x200') yesbtn=Button(newwind,font=("Helvetica",12),text="Yes",borderwidth=0,bg="lightpink", fg="purple",command=yesclk).place(x=7,y=160) nobtn=Button(newwind,font=("Helvetica",12),text="No",borderwidth=0,bg="lightpink", fg="purple",command=lambda:newwind.destroy()).place(x=160,y=160) label1=Label(newwind,font=("Arial",15),text="Are You Sure?",fg="purple").place(x=15,y=25) def clicksubmit(): print("Called Function") con=sqlite3.connect('studentrecords.db') c=con.cursor() studentname=name.get() rollnum=rollno.get() math_marks=maths.get() phy_marks=physics.get() chem_marks=chemistry.get() gender="" gen=var.get() if(gen==1): gender+="Male" else: gender+="Female" c.execute("""INSERT INTO StudentData(Name,Roll,Gender,Maths,Physics,Chemistry) VALUES(?,?,?,?,?,?)""", (studentname,rollnum,gender,math_marks,phy_marks,chem_marks)) rows=c.execute("SELECT * from StudentData") print(type(rows)) for row in rows: print(type(row)) print(row) # print("Unable To Enter") con.commit() name.delete(0,END) rollno.delete(0,END) maths.delete(0,END) physics.delete(0,END) chemistry.delete(0,END) root=Tk() root.geometry('1000x500') root.iconbitmap('ER.ico') root.title('Exam Records') var=IntVar() global con con=sqlite3.connect('studentrecords.db') c=con.cursor() c.execute("""CREATE TABLE IF NOT EXISTS StudentData(Name TEXT,Roll NUMBER,Gender TEXT,\ Maths NUMBER,Physics NUMBER,Chemistry NUMBER)""") # Creating Labels header=Label(root,font=("Arial",15),fg="purple",text="Exam Records").place(x=210,y=30) name_label=Label(root,font=("Helvetica",12),fg="purple",text="Name").place(x=69,y=120) gender=Label(root,font=("Helvetica",12),fg="purple",text="Gender").place(x=69,y=164) roll=Label(root,font=("Helvetica",12),fg="purple",text="Roll Number").place(x=69,y=208) math_sub=Label(root,font=("Helvetica",12),fg="purple",text="Mathematics").place(x=69,y=250) phy_sub=Label(root,font=("Helvetica",12),fg="purple",text="Physics").place(x=69,y=290) chem_sub=Label(root,font=("Helvetica",12),text="Chemistry",fg="purple").place(x=69,y=330) # Creating Entry Boxes global name,rbutton1,rbutton2,rollno,maths,physics,chemistry name=Entry(root,font=("Helvetica",12),width=27,bg="lightblue") rbutton1=Radiobutton(root,font=("Helvetica",12),fg="red",variable=var,value=1,text="Male") rbutton2=Radiobutton(root,font=("Helvetica",12),fg="green",variable=var,value=2,text="Female") rollno=Entry(root,font=("Helvetica",12),width=27,bg="lightblue") maths=Entry(root,font=("Helvetica",12),width=27,bg="lightblue") physics=Entry(root,font=("Helvetica",12),width=27,bg="lightblue") chemistry=Entry(root,font=("Helvetica",12),width=27,bg="lightblue") # Placing Widgets name.place(x=170,y=122) rbutton1.place(x=170,y=164) rbutton2.place(x=250,y=164) rollno.place(x=170,y=207) maths.place(x=170,y=249) physics.place(x=170,y=289) chemistry.place(x=170,y=329) # Create a Submit Button , Delete Record , Clear Data Base submit=Button(root,font=("Arial",15),fg="white",bg="purple",text="Submit",borderwidth=0, command=lambda:clicksubmit()).place(x=242,y=369) con.commit() con.close() delete=Button(root,font=("Helvetica",12),bg="green",fg="white",text="Delete A Record", borderwidth=0,command=recdelete).place(x=220,y=410) frame=Frame(root,bg="lightpink",width=500,height=500).place(x=500,y=0) clearEntry=Button(root,font=("Helvetica",12),text="Clear Database",bg="red",fg="white", borderwidth=0,command=clearall).place(x=223,y=450) # Frame Buttons def mathres(): print("Inside Math") newwind=Toplevel(root) lab_header1=Label(newwind,text="Name",font=("Helvetica",10),fg="purple",bg="lightpink").place(x=2,y=0) lab_header2=Label(newwind,text="Roll Number",font=("Helvetica",10),fg="purple",bg="lightpink").place(x=152,y=0) lab_header3=Label(newwind,text="Marks Obtained",font=("Helvetica",10),fg="purple",bg="lightpink").place(x=302,y=0) newwind.geometry('400x400') con=sqlite3.connect('studentrecords.db') c=con.cursor() rows=c.execute("SELECT Name,Roll,Maths FROM StudentData ORDER BY Maths desc") x1=2 y1=30 for row in rows: s_name=row[0] roll=row[1] math=row[2] lab1=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=s_name).place(x=x1,y=y1) lab2=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(roll)).place(x=x1+150,y=y1) lab3=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(math)).place(x=x1+300,y=y1) y1+=30 def chemres(): print("Inside Chem") newwind=Toplevel(root) lab_header1=Label(newwind,text="Name",font=("Helvetica",10),fg="purple", bg="lightpink").place(x=2,y=0) lab_header2=Label(newwind,text="Roll Number",font=("Helvetica",10),fg="purple", bg="lightpink").place(x=152,y=0) lab_header3=Label(newwind,text="Marks Obtained",font=("Helvetica",10),fg="purple", bg="lightpink").place(x=302,y=0) newwind.geometry('400x400') con=sqlite3.connect('studentrecords.db') c=con.cursor() rows=c.execute("SELECT Name,Roll,Chemistry FROM StudentData ORDER BY Chemistry desc") x1=2 y1=30 for row in rows: s_name=row[0] roll=row[1] math=row[2] lab1=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=s_name).place(x=x1,y=y1) lab2=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(roll)).place(x=x1+150,y=y1) lab3=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(math)).place(x=x1+300,y=y1) y1+=30 def phyres(): print("Inside Physics") newwind=Toplevel(root) lab_header1=Label(newwind,text="Name",font=("Helvetica",10), fg="purple",bg="lightpink").place(x=2,y=0) lab_header2=Label(newwind,text="Roll Number",font=("Helvetica",10), fg="purple",bg="lightpink").place(x=152,y=0) lab_header3=Label(newwind,text="Marks Obtained",font=("Helvetica",10), fg="purple",bg="lightpink").place(x=302,y=0) newwind.geometry('400x400') con=sqlite3.connect('studentrecords.db') c=con.cursor() rows=c.execute("SELECT Name,Roll,Physics FROM StudentData ORDER BY Physics desc") x1=2 y1=30 for row in rows: s_name=row[0] roll=row[1] math=row[2] lab1=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=s_name).place(x=x1,y=y1) lab2=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(roll)).place(x=x1+150,y=y1) lab3=Label(newwind,font=("Helvetica",10),fg="purple",bg="lightpink", highlightcolor="purple",text=str(math)).place(x=x1+300,y=y1) y1+=30 button1=Button(frame,text="Display Maths Results",bg="purple",fg="white",font=("Helvetica",15), command=lambda:mathres(),borderwidth=0).place(x=500,y=50) button2=Button(frame,text="Display Physics Results",bg="purple",fg="white",font=("Helvetica",15), command=phyres,borderwidth=0).place(x=500,y=95) button3=Button(frame,text="Display Chemistry Results",bg="purple",fg="white",font=("Helvetica",15), borderwidth=0,command=chemres).place(x=500,y=140) root.mainloop()