2017-01-20 6 views
-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() 
+0

質問を投稿する前に少しデバッグを行います。たとえば、 'unlockhrs'に' print(username) 'を追加して、' username'があなたの考えであることを確認することを推奨します(ヒント:そうではありません)。 –

+0

ありがとう!!私は検証し、それはPY_VAR0と言いますが、textvariable = usernameを使用すると、テキストボックスに入力されたものはすべてusernameに割り当てられることを理解しました。 :( – Vikarux

+0

私はコードを修正し、値は今渡されます:) – Vikarux

答えて

1

... 
def unlockhrs(): 
    username = e1.get() 
    print(username) 
.... 
e1 = Entry(master) 
e1.grid(row=0, column=1) 
e1.bind('<Return>', unlockhrs) 
... 
関連する問題