I am going to make student registration form in which student will also need to enter their. But when I enter the photo it gives error on
button=tk.Button(frame,command=stdreg(f1))
this line and
cursor.execute('insert into studentreg(name,fname,email,pass,cpass,phone,photo)values(?,?,?,?,?,?,?)',(name1,ffname,ema,pas,cpas,p,data))
pyodbc.DataError: ('22003', '[22003] [Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type int. (8115) (SQLParamData); [22003] [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated. (3621)')
this also .
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
from tkinter import re
from PIL import Image,ImageTk
import tkinter.font as font
from tkinter import filedialog
import pyodbc
HEIGHT=650
WIDTH=800
root=tk.Tk()
root.title("Admin Registration")
canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()
def stdreg(path):
name1=textname.get()
fname=father_name.get()
ema=Email.get()
pas=Password.get()
cpas=Confirm_Password.get()
p=int(phno.get())
with open(path,'rb') as f:
data=f.read()
conn = pyodbc.connect('Driver={SQL
Server};''Server=SHUMAILA\SHUM;''Database=FYP;''Trusted_Connection=yes;')
cursor=conn.cursor()
cursor.execute('insert into
studentreg(name,fname,email,pass,cpass,phone,photo)values(?,?,?,?,?,?,?)',
(name1,fname,ema,pas,cpas,p,data))
messagebox.showinfo("Message","You are successfully registered!")
conn.commit()
load=Image.open('reg.png')
render=ImageTk.PhotoImage(load)
img=tk.Label(image=render)
img.image=render
img.place(relwidth=1, relheight=1)
frame = tk.Frame(root, bg='#33BEFF', bd=5)
frame.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.8)
Fontlabel = font.Font(family='Helvetica', size=25, weight='bold')
label=tk.Label(frame,text="Student Registration Form",bg="#33BEFF",fg='navy')
label['font']=Fontlabel
label.pack()
#logo image
load_image=Image.open('l.png')
render=ImageTk.PhotoImage(load_image)
imgg=tk.Label(image=render)
imgg.image=render
imgg.place(relx=0.40,rely=0.20)
string=tk.StringVar()
label1=tk.Label(frame,text="Name:",font=20,bg="#33BEFF")
label1.place(relx=0.30,rely=0.35)
textname=ttk.Entry(frame,textvariable=string,text="")
textname.place(relx=0.53,rely=0.35)
label2=tk.Label(frame,text="Father Name:",font=20,bg="#33BEFF")
label2.place(relx=0.30,rely=0.41)
father_name=ttk.Entry(frame,textvariable=string,text="")
father_name.place(relx=0.53,rely=0.41)
label3=tk.Label(frame,text="Email Address:",font=20,bg="#33BEFF")
label3.place(relx=0.30,rely=0.47)
Email=ttk.Entry(frame,textvariable=string,text="")
Email.place(relx=0.53,rely=0.47)
label4=tk.Label(frame,text="Password:",font=20,bg="#33BEFF")
label4.place(relx=0.30,rely=0.53)
Password=ttk.Entry(frame,textvariable=string,text="",show='*')
Password.place(relx=0.53,rely=0.53)
label5=tk.Label(frame,text="Confirm Password:",font=20,bg="#33BEFF")
label5.place(relx=0.30,rely=0.59)
Confirm_Passwordd=ttk.Entry(frame,textvariable=string,text="",show='*')
Confirm_Passwordd.place(relx=0.53,rely=0.59)
label6 = tk.Label(root, text="Phone Number:", font=20, bg="#33BEFF")
label6.place(relx=0.34,rely=0.61)
phno = ttk.Entry(root, textvariable=string, text="",validate='key', validatecommand=(reg, '%P'))
phno.place(relx=0.52,rely=0.61)
phno.focus_set()
def photo():
filepath=filedialog.askopenfilename()
f1=str(filepath)
# filepath.pack()
stdfilee=Image.open(filepath)
stdshow=ImageTk.PhotoImage(stdfilee)
imageshow=tk.Label(image=stdshow)
image_show.image=stdshow
image_show.place(relx=0.70,rely=0.20)
myFont = font.Font(family='Helvetica', size=10, weight='bold')
button=tk.Button(frame,text="Sign Up",bg='#FF6E33')
button['font']=myFont
button.place(relx=0.40,rely=0.8,relwidth=0.25,relheight=0.10)
button=tk.Button(frame,command=stdreg(f1))
#button=tk.Button(frame,command=std_register(f1))
label7=tk.Label(frame,text="Add your photo:",font=20,bg="#33BEFF")
label7.place(relx=0.30,rely=0.70)
photo=ttk.Entry(frame,textvariable=string,text="",)
photo.place(relx=0.53,rely=0.70)
browser=tk.Button(root,text="Browse here",command=photo)
browser.place(relx=0.69,rely=0.65)
root.mainloop()
the output should be " You are successfully registered!"