python和sql交互:从gui查询多个表和插入数据

0ejtzxu1  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(393)

我在做一个让我的生活更轻松的计划。
我想做的是制作一个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()

z4iuyo4d

z4iuyo4d1#

你可以使用 Combobox ttk内的小部件(如果你不知道什么是ttk,它拥有tkinter的所有特性,以及一些其他很酷的小部件,比如进度条等等。请参阅ttk python文档here:python documentation)
然后你可以把你的 entry2 到一个textvariable,这样它就转到某个函数,该函数检查其中的数字是否大于purchases。
例子:

variable = StringVar()

# Then set the value of `textvariable` option in tkinter to variable

entry_name = Entry(root, textvariable=variable)
entry_name.trace("w", name_of_function)

在函数内部,您可以使用 SELECT .
注:以下为 trace 方法应在 w 模式。这对于做出改变是至关重要的。

相关问题