import tkinter as tkimport mysql.connector# 连接 MySQL 数据库mydb = mysql.connector.connect(user='sa', password='sa', host='localhost', db='Student')cursor = mydb.cursor()# 创建 GUI 界面# 添加学生信息def create_student_info_window(): tk.Label(root, text="添加学生信息").pack() tk.Entry(root, textvariable=tk.StringVar(value='请输入学生信息')).pack() tk.Button(root, text="添加", command=lambda: add_student()).pack()# 单个录入def add_student(): id = id_entry.get() name = name_entry.get() age = age_entry.get() gender = gender_entry.get() IDcard = IDcard_entry.get() xueyuan = xueyuan_entry.get() banji = banji_entry.get() zhuanye = zhuanye_entry.get() jiguan = jiguan_entry.get() number = number_entry.get() sql = "INSERT INTO students (id, name, age, gender, IDcard, xueyuan, banji, zhuanye, jiguan, number) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" val = (id, name, age, gender, IDcard, xueyuan, banji, zhuanye, jiguan, number) cursor.execute(sql, val) mydb.commit() id_entry.delete(0, tk.END) name_entry.delete(0, tk.END) age_entry.delete(0, tk.END) gender_entry.delete(0, tk.END) IDcard_entry.delete(0, tk.END) xueyuan_entry.delete(0, tk.END) banji_entry.delete(0, tk.END) zhuanye_entry.delete(0, tk.END) jiguan_entry.delete(0, tk.END)number_entry.delete(0, tk.END)
时间: 2024-04-03 19:30:57 浏览: 94
这段代码是用 Python 的 tkinter 库和 mysql.connector 库创建了一个 GUI 界面,用于添加学生信息到 MySQL 数据库中。其中,create_student_info_window() 函数创建了一个窗口,包含了多个文本框和一个添加按钮;add_student() 函数则是在点击添加按钮后将文本框中的信息插入到 MySQL 数据库中。值得注意的是,这里将 SQL 语句和参数分开定义,使用 cursor.execute() 函数执行 SQL 语句并传入参数,最后通过 mydb.commit() 函数提交事务。
相关问题
import tkinter as tk import mysql.connector from tkinter import messagebox as mb # 连接数据库 mydb = mysql.connector.connect( host="localhost", user="root", password="kk", database="c" ) # 创建游标 mycursor = mydb.cursor() # 创建GUI窗口 root = tk.Tk() root.title("MySQL数据库查询") # 创建文本框和标签 query_label = tk.Label(root, text="查询语句:") query_label.grid(row=0, column=0) query_entry = tk.Entry(root) query_entry.grid(row=0, column=1) # 创建按钮 search_button = tk.Button(root, text="查询", command=search) search_button.grid(row=1, column=0) # 创建结果标签 result_label = tk.Label(root, text="") result_label.grid(row=2, column=0, columnspan=2) # 查询函数 def search(): # 获取查询语句 query = query_entry.get() # 执行查询 mycursor.execute(query) result = mycursor.fetchall() # 在结果标签中显示结果 result_label.config(text=result)
Thank you for providing the code. The issue you are encountering is due to the fact that the `search` function has not been defined before it is called in the `search_button` command. To resolve this issue, you can define the `search` function before the `search_button` widget is created. Here is the updated code:
```
import tkinter as tk
import mysql.connector
from tkinter import messagebox as mb
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="kk",
database="c"
)
# 创建游标
mycursor = mydb.cursor()
# 创建GUI窗口
root = tk.Tk()
root.title("MySQL数据库查询")
# 创建文本框和标签
query_label = tk.Label(root, text="查询语句:")
query_label.grid(row=0, column=0)
query_entry = tk.Entry(root)
query_entry.grid(row=0, column=1)
# 查询函数
def search():
# 获取查询语句
query = query_entry.get()
# 执行查询
mycursor.execute(query)
result = mycursor.fetchall()
# 在结果标签中显示结果
result_label.config(text=result)
# 创建按钮
search_button = tk.Button(root, text="查询", command=search)
search_button.grid(row=1, column=0)
# 创建结果标签
result_label = tk.Label(root, text="")
result_label.grid(row=2, column=0, columnspan=2)
# 运行GUI
root.mainloop()
```
I hope this helps! Let me know if you have any further questions.
import mysql.connector # 连接 MySQL 数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="mydatabase" ) # 查询数据 mycursor = mydb.cursor() mycursor.execute("SELECT * FROM products") products = mycursor.fetchall() # 计算每种商品的收入 for product in products: name = product[1] cost = product[2] price = product[3] sales = product[4] income = (price - cost) * sales print("{} 的收入为:{}".format(name, income)) # 计算所有商品的总收入 total_income = sum([(product[3] - product[2]) * product[4] for product in products]) print("所有商品的总收入为:{}".format(total_income))请将结果显示在gui界面中,而不是直接输出
好的,让我们将结果显示在 GUI 界面中,而不是直接输出到控制台。
首先,我们需要在 GUI 界面中添加一个文本框,用于显示计算结果。可以使用 Tkinter 中的 Text 组件来实现这一功能。下面是修改后的代码示例:
```python
import mysql.connector
from tkinter import *
# 连接 MySQL 数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
# 查询数据
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM products")
products = mycursor.fetchall()
# 计算每种商品的收入
result = ""
for product in products:
name = product[1]
cost = product[2]
price = product[3]
sales = product[4]
income = (price - cost) * sales
result += "{} 的收入为:{}\n".format(name, income)
# 计算所有商品的总收入
total_income = sum([(product[3] - product[2]) * product[4] for product in products])
result += "所有商品的总收入为:{}".format(total_income)
# 创建 GUI 界面
root = Tk()
root.title("商家收入系统")
# 商品名称
name_label = Label(root, text="商品名称:")
name_label.grid(row=0, column=0)
name_entry = Entry(root)
name_entry.grid(row=0, column=1)
# 商品成本
cost_label = Label(root, text="商品成本:")
cost_label.grid(row=1, column=0)
cost_entry = Entry(root)
cost_entry.grid(row=1, column=1)
# 商品售价
price_label = Label(root, text="商品售价:")
price_label.grid(row=2, column=0)
price_entry = Entry(root)
price_entry.grid(row=2, column=1)
# 商品销售量
sales_label = Label(root, text="商品销售量:")
sales_label.grid(row=3, column=0)
sales_entry = Entry(root)
sales_entry.grid(row=3, column=1)
# 保存按钮
save_button = Button(root, text="保存", command=save_product)
save_button.grid(row=4, column=0, columnspan=2)
# 结果文本框
result_text = Text(root)
result_text.grid(row=5, column=0, columnspan=2)
result_text.insert(END, result)
root.mainloop()
```
在上面的代码中,我们使用了一个名为 `result` 的字符串变量,用于保存计算结果。在计算每种商品的收入时,我们将结果添加到 `result` 变量中。在计算所有商品的总收入时,我们将其添加到 `result` 变量的末尾。最后,我们将 `result` 变量的内容插入到 GUI 界面中的文本框中,以便用户查看计算结果。
希望这个修改后的代码可以帮助到你,如有疑问请随时联系我!
阅读全文