Это исключение com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
возникает, если соединение с базой данных простаивает в течение длительного времени.
Это незанятое соединение возвращает true на connection.isClosed();
, но если мы попытаемся выполнить инструкцию, тогда оно запустит это исключение, поэтому я предлагаю пойти с пулом базы данных.
Вы используете строки, в которых вы должны использовать числа (IntVar).
Используйте числа
x=tkinter.IntVar()
a=tkinter.IntVar()
b=tkinter.IntVar()
try
x.set(x.get()+1)
[...]
def add():
a=x.get()
x.set(0)
def ans():
b=x.get()
x.set(a+b)
вместо
x.set(x.get()+'1')
В ваших функциях add
и ans
вы используете a
и b
в качестве переменных вместо IntVar
s. Измените их на:
def add():
a.set(x.get())
x.set('')
def ans():
b.set(x.get())
x.set(a.get()+b.get())
1
и2
в калькулятор (без нажатия+
), вы ожидаете, что оно станет 12, а не 3. Вот почемуx
является строкой. – fhdrsdg 13 July 2018 в 14:251
и2
уже дает 12 в коде, который у вас есть. Вы должны вносить изменения только в функцииadd
иans
, как я объяснил в своем ответе. – fhdrsdg 13 July 2018 в 14:54