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()
'あなたが何かをする必要があると思いますので、データフレームを返すpsql.read_sql' 'my_title = df [' title ']。values [0] ' – bernie
グローバル変数は悪です。 –
@JoshuaNixon:グローバル変数は悪ではありませんが、それは悪いグローバル変数の不適切な使用です。 –