-1
テキストボックス入力から取得した引数をSQLクエリに渡してユーザアカウントのロックを解除する際に問題が発生しました。Python:テキストボックスから取得した引数をPYODBCクエリに渡す方法
私は、クエリでusernameの明示的な値でコードをテストし、正常に実行されます。
何か助けていただきありがとうございます。いくつかのtroubleshotingとブライアンからヒント後
from Tkinter import *
import pypyodbc as pyodbc
master = Tk()
username = StringVar()
def callback():
print e.get()
def unlockhrs():
username = e1.get()
print(username)
cnxn = pyodbc.connect('Trusted_Connection=yes;DRIVER={SQL Server};SERVER=xxx;DATABASE=xxx;UID=domain1\xxx;PWD=xxx')
cursor = cnxn.cursor()
cursor.execute("update tbl_UserActivity set UserBlock = 0 where UserName =" +username)
cursor.commit()
cursor.execute("select * from tbl_UserActivity where UserName =" +username)
#master = Tk()
master.title("HRS UNLOCK")
master.resizable(False, False)
master.minsize(width=300, height=50)
master.maxsize(width=300, height=50)
Label(master, text="USERNAME").grid(row=0)
e1 = Entry(master)
e1.grid(row=0, column=1)
e1.bind('<Return>', unlockhrs)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Unlock', command=unlockhrs).grid(row=3, column=2, sticky=W, pady=4)
mainloop()
質問を投稿する前に少しデバッグを行います。たとえば、 'unlockhrs'に' print(username) 'を追加して、' username'があなたの考えであることを確認することを推奨します(ヒント:そうではありません)。 –
ありがとう!!私は検証し、それはPY_VAR0と言いますが、textvariable = usernameを使用すると、テキストボックスに入力されたものはすべてusernameに割り当てられることを理解しました。 :( – Vikarux
私はコードを修正し、値は今渡されます:) – Vikarux