Значение Python tkinter, переданное в запрос sqlLite3, не работает - PullRequest
0 голосов
/ 29 ноября 2018

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

Ниже приведен код:

from tkinter import *

window = Tk()
window.geometry('300x200') 
window.title("Welcome to GUI app")

lbl = Label(window, text="Name")

lbl.grid(column=0, row=0)
tst=Entry(window,width=10)
tst.grid(column=1, row=0)
tst.focus()
lbl1= Label(window, text="Id")

lbl1.grid(column=0, row=1)
tst1=Entry(window,width=10)
tst1.grid(column=1, row=1)

# Method to Fetch the data from db
def getData(id,empname):
    import sqlite3 as sq
    con=sq.connect('C:\\SqlLiteDB\\testsql.db')
    cr=con.cursor()
    res=cr.execute("select inc from emp where eid=? and ename=?",(id,empname))
    return res

# Method binded on click        
def buttonClick():
    result=getData(tst.get(), tst1.get())
    output=result
    lbl2.configure(text=output)
btn = Button(window, text="Check Increment",command=buttonClick)

btn.grid(column=3, row=3)
lbl2 = Label(window, text="")
lbl2.grid(column=0, row=4)
window.mainloop()

1 Ответ

0 голосов
/ 29 ноября 2018
  1. Вы, вероятно, испытываете это, потому что вы не получаете то, что вы выполняете.Вы должны использовать метод .fetchall().

  2. Всегда используйте управляющую переменную для виджетов tkinter, таких как entry, они дают вам больший контроль над типом передаваемых данных.Из вашего кода tst, кажется, используется для хранения ids, который, как я считаю, должен быть целым числом, но, поскольку ваш код таков, вы всегда получите возвращаемый тип str, если не используете управляющие переменные:

    def getData(id,empname):
        import sqlite3 as sq
        con=sq.connect('C:\\SqlLiteDB\\testsql.db')
        cr=con.cursor()
        cr.execute("select inc from emp where eid=? and ename=?",(id,empname))
        res=cr.fetchall()
        return res
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...