我在做一个让我的生活更轻松的计划。
我想做的是制作一个gui,这样用户(我和几个朋友)就可以将数据输入到我的sql表中。不过,我想连接到2个不同的数据库,编译成1。
它由3个不同的值组成,我需要其中一个值(#1)来自从db1中提取的下拉框,值#2由用户输入,但不能大于分配给从db1中提取的值#1的数值,最后只有我的userid。
示例db1 has customer and#of products bulled,value#1具有所有已购买的客户的下拉列表(我选择customer ,他们有4个活动购买),在value#2中我可以输入4或更少(用于装运目的)。然后是我的用户名。
然后我点击submit按钮,它a)自动插入到表中,或者b)填充一个列表,我点击一个按钮,所有内容都立即插入到表中(见图)。
我有粗糙的图形用户界面工作,我输入到我的test.db信息,但我不确定的下拉选项或部分,我会连接到一个不同的数据库,以拉客户w/活动订单信息(另外,gui是否可以显示我作为行/列设置输入的值,然后一次将所有值提交给sql,或者我是否需要一次提交一个值?)
谢谢你的帮助。
import pyodbc
import tkinter as tk
conn = pyodbc.connect('Driver={SQL Server};'
'Server=server_name;'
'Database=db_name;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute('SELECT * FROM db_name.TestDB')
window = tk.Tk()
label1 = tk.Label(window, text='Value1')
label2 = tk.Label(window, text='Value2')
label3 = tk.Label(window, text='Value3')
entry1 = tk.Entry(window)
entry2 = tk.Entry(window)
entry3 = tk.Entry(window)
def submittal():
cursor.execute('''
INSERT INTO TestDB.dbo.Info (Value1, Value2, Value3)
VALUES
(?, ?, ?),
(entry1.get(),entry2.get(),entry3.get())
''')
window.destroy()
button1 = tk.Button(window, text='Submit', command=submittal)
conn.commit()
1条答案
按热度按时间z4iuyo4d1#
你可以使用
Combobox
ttk内的小部件(如果你不知道什么是ttk,它拥有tkinter的所有特性,以及一些其他很酷的小部件,比如进度条等等。请参阅ttk python文档here:python documentation)然后你可以把你的
entry2
到一个textvariable,这样它就转到某个函数,该函数检查其中的数字是否大于purchases。例子:
在函数内部,您可以使用
SELECT
.注:以下为
trace
方法应在w
模式。这对于做出改变是至关重要的。