在类中填充sql中的输入框

时间:2017-04-12 17:22:23

标签: python sql-server pandas tkinter

我尝试使用从sql表中提取的数据在类的输入框中填充默认值,但我遇到了麻烦。我将SQL查询拉到类之外,然后尝试使用全局变量访问类中的变量。然后我使用set()在输入框中设置全局变量。我非常感谢您对我失踪的所有见解。编辑:我更新了更正的代码,反映了建议的代码更改。此代码现在可以使用。

# 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 个答案:

答案 0 :(得分:2)

好吧,psql.read_sql会返回DataFrame,因此您需要在以下领域执行以下操作:

my_title = df['title'].values[0]