_tkinter.TclError: ожидаемое число с плавающей точкой, но получено "" - PullRequest
1 голос
/ 22 апреля 2020

Попытка подключения и добавления собранных данных в базу данных MySQL выдает ошибку. Пожалуйста, помогите с ошибкой. Я только начинаю свое путешествие по tkinter.

from tkinter import *
import mysql.connector as mysql

root = Tk()


def flush(*args):

    e_1.delete(0, END)
    e_2.delete(0, END)
    e_3.delete(0, END)

    name = nme.get()
    phone = ph.get()
    emirate = e_id.get()
    con = mysql.connect(host='localhost', user='root', password='monkey123', database='NZ')
    c = con.cursor()
    c.execute("Insert into gli (NAME_S,PH_NO,E_ID) VALUES ('"+name+"','"+str(phone)+"','"+str(emirate)+"')")

    c.execute('commit')

    con.close()


nme= StringVar()
ph = IntVar()
e_id = IntVar()

label_1 = Label(root,text='Patient Name',fg='blue')
label_2 = Label(root,text='Phone number',fg='blue')
label_3 = Label(root,text='Emirates ID',fg='blue')

label_1.grid(row=0,column=0)
label_2.grid(row=1,column=0)
label_3.grid(row=2,column=0)

e_1 = Entry(root,borderwidth=2,textvariable=nme)
e_2 = Entry(root,borderwidth=2,textvariable=ph)
e_3 = Entry(root,borderwidth=2,textvariable=e_id)

e_1.grid(row=0,column=1,ipady=10,padx=10,pady=10)
e_2.grid(row=1,column=1,ipady=10,padx=10,pady=10)
e_3.grid(row=2,column=1,ipady=10,padx=10,pady=10)

B_1 = Button(root,text='ENTER',command =flush)
B_1.grid(row=4,column=1)



root.mainloop()

Сообщение об ошибке:

 Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\nihaa\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 508, in get
    return self._tk.getint(value)
_tkinter.TclError: expected integer but got ""

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\nihaa\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:/Users/nihaa/PycharmProjects/GUI/venv/db'.py", line 14, in flush
    phone = ph.get()
  File "C:\Users\nihaa\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 510, in get
    return int(self._tk.getdouble(value))
_tkinter.TclError: expected floating-point number but got "" 

1 Ответ

0 голосов
/ 22 апреля 2020

Вы удаляете содержимое виджетов перед извлечением значений. Таким образом, значения являются пустыми строками, и, следовательно, ошибка говорит о том, что ожидалось число с плавающей запятой, но получена пустая строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...