Ошибка: "ValueError: неверный литерал для int () с основанием 10: '' при передаче значений в базу данных sql из виджета ввода Tk - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь вставить значения в базу данных sql из Tkinter Gui. Однако я получаю эту ошибку ValueError: неверный литерал для int () с основанием 10: '' Вот код:

    con = cx_Oracle.connect("system/abc123")
    print("connected")
    cursor = con.cursor()
    sql = "insert into student values('%d','%s','%d')"
    rno = int(entRno.get())
    name = entName.get()
    marks = int(entMarks.get())
    args = (rno,name,marks)
    cursor.execute(sql % args)
    con.commit()
    msg = str(cursor.rowcount) + " records inserted"
    messagebox.showinfo("Success",msg)

Вот трассировка:

Traceback (most recent call last):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in__call__
return self.func(*args)
File "C:\Users\Admin\Desktop\Tkinter Project\sam.py", line 108, in f5
rno = int(entRno.get())
ValueError: invalid literal for int() with base 10: ''

Что я должен сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 02 февраля 2020

Я думаю, что вы можете попытаться передать значение int в блоке try / кроме. Эта ссылка выглядит изобретательной: http://scipy-lectures.org/intro/language/exceptions.html Как это

try:
   rno = int(rno)
   break
except ValueError:
   raise (ValueError, print(some debug message or warning issue)
...