2017-04-12 33 views
2

SQLテーブルから取得したデータを使用してクラス内の入力ボックスにデフォルト値を入力しようとしていますが、問題が発生しています。私は、クラスの外でSQLクエリをプルし、グローバル変数を使用してクラス内の変数にアクセスしようとします。次に、set()を使って入力ボックスにグローバル変数を設定します。私が逃しているものについての洞察は非常に高く評価されます。編集:私は、提案されたコードの変更を反映する修正されたコードにこれを更新しました。このコードは現在機能しています。クラス内のsqlの入力ボックスに値を設定します

# Data Audit GUI 
import pandas as pd 
import numpy as np 
import pandas.io.sql as psql 
import pyodbc 

from tkinter import * 
from tkinter.ttk import * 
root = Tk() 

cnxn = pyodbc.connect("DRIVER={SQL Server};""SERVER=xxxx;DATABASE=xxxx;""trusted_connection=yes;") 

sql = """ 
SELECT title 
FROM dbo.jobtable 
WHERE jobid=4001 
""" 
Job = psql.read_sql(sql, cnxn) 
Pyjobtitle = StringVar() 
Pyjobtitle = Job['title'].values[0] 

class Application(Frame): 
    def __init__(self, master): 
    Frame.__init__(self,master) 
    self.grid() 
    self.create_widgets() 

    def create_widgets(self): 

     global Pyjobtitle 
     self.ClassJobTitle = StringVar() 
     self.JobTitle = Entry(root, width = 45, text = self.ClassJobTitle) # Job Title 
     self.JobTitle.grid(row = 2, column = 0, columnspan = 1, rowspan = 1, sticky = W) 
     self.ClassJobTitle.set(Pyjobtitle) 

app = Application(root) 
root.mainloop() 
+1

'あなたが何かをする必要があると思いますので、データフレームを返すpsql.read_sql' 'my_title = df [' title ']。values [0] ' – bernie

+1

グローバル変数は悪です。 –

+1

@JoshuaNixon:グローバル変数は悪ではありませんが、それは悪いグローバル変数の不適切な使用です。 –

答えて

2
ので、あなたはの分野で何かをする必要があると思い DataFrameを返し psql.read_sql

まあ、:

my_title = df['title'].values[0] 
関連する問題