题目:利用GUI界面实现数据库数据的CRUD增查改删功能。设计实验,编写代码用以实现题目的功能
时间: 2024-03-20 18:44:27 浏览: 125
好的,下面我将为您提供一个Python代码示例,用于实现题目要求的功能。
在这个示例中,我们使用了Python的Tkinter库来创建GUI界面,使用SQLite3作为数据库,通过SQL语句来实现CRUD操作。具体实现步骤如下:
1. 导入必要的库
```python
import tkinter as tk
import sqlite3
```
2. 创建GUI界面
```python
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.master.title("学生信息管理系统")
self.pack()
self.create_widgets()
```
在这个代码段中,我们创建了一个名为Application的类,并继承了tk.Frame类。在__init__函数中,我们设置了窗口标题,并创建了一个create_widgets函数,用于创建GUI界面的各个组件。
3. 创建数据库连接
```python
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
gender TEXT,
age INTEGER)''')
```
在这个代码段中,我们创建了一个名为students的数据表,并设置了四个字段:id、name、gender和age。其中,id为主键,自增长。
4. 实现增加功能
```python
def add_student():
name = name_entry.get()
gender = gender_entry.get()
age = age_entry.get()
c.execute("INSERT INTO students (name, gender, age) VALUES (?, ?, ?)",
(name, gender, age))
conn.commit()
```
在这个代码段中,我们定义了一个名为add_student的函数,用于实现增加学生信息的功能。在函数中,我们获取了用户输入的姓名、性别和年龄,然后使用SQL语句将这些信息插入到数据库中。
5. 实现查询功能
```python
def search_students():
result_listbox.delete(0, tk.END)
name = name_entry.get()
gender = gender_entry.get()
age = age_entry.get()
if name:
c.execute("SELECT * FROM students WHERE name=?", (name,))
elif gender:
c.execute("SELECT * FROM students WHERE gender=?", (gender,))
elif age:
c.execute("SELECT * FROM students WHERE age=?", (age,))
else:
c.execute("SELECT * FROM students")
students = c.fetchall()
for student in students:
result_listbox.insert(tk.END, student)
```
在这个代码段中,我们定义了一个名为search_students的函数,用于实现查询学生信息的功能。在函数中,我们获取了用户输入的姓名、性别和年龄,然后根据这些信息使用SQL语句查询数据库,并将查询结果展示在GUI界面上。
6. 实现更新功能
```python
def update_student():
id = id_entry.get()
name = name_entry.get()
gender = gender_entry.get()
age = age_entry.get()
c.execute("UPDATE students SET name=?, gender=?, age=? WHERE id=?",
(name, gender, age, id))
conn.commit()
```
在这个代码段中,我们定义了一个名为update_student的函数,用于实现更新学生信息的功能。在函数中,我们获取了用户输入的学生ID、姓名、性别和年龄,然后使用SQL语句更新数据库中对应的记录。
7. 实现删除功能
```python
def delete_student():
id = id_entry.get()
c.execute("DELETE FROM students WHERE id=?", (id,))
conn.commit()
```
在这个代码段中,我们定义了一个名为delete_student的函数,用于实现删除学生信息的功能。在函数中,我们获取了用户输入的学生ID,然后使用SQL语句从数据库中删除对应的记录。
8. 创建GUI界面组件,并绑定事件
```python
def create_widgets(self):
# 学生ID
id_label = tk.Label(self, text="学生ID")
id_label.grid(row=0, column=0)
self.id_entry = tk.Entry(self)
self.id_entry.grid(row=0, column=1)
# 学生姓名
name_label = tk.Label(self, text="学生姓名")
name_label.grid(row=1, column=0)
self.name_entry = tk.Entry(self)
self.name_entry.grid(row=1, column=1)
# 学生性别
gender_label = tk.Label(self, text="学生性别")
gender_label.grid(row=2, column=0)
self.gender_entry = tk.Entry(self)
self.gender_entry.grid(row=2, column=1)
# 学生年龄
age_label = tk.Label(self, text="学生年龄")
age_label.grid(row=3, column=0)
self.age_entry = tk.Entry(self)
self.age_entry.grid(row=3, column=1)
# 增加学生信息按钮
add_button = tk.Button(self, text="增加", command=add_student)
add_button.grid(row=4, column=0)
# 查询学生信息按钮
search_button = tk.Button(self, text="查询", command=search_students)
search_button.grid(row=4, column=1)
# 更新学生信息按钮
update_button = tk.Button(self, text="更新", command=update_student)
update_button.grid(row=4, column=2)
# 删除学生信息按钮
delete_button = tk.Button(self, text="删除", command=delete_student)
delete_button.grid(row=4, column=3)
# 查询结果列表框
self.result_listbox = tk.Listbox(self)
self.result_listbox.grid(row=5, column=0, columnspan=4)
```
在这个代码段中,我们创建了几个文本框和按钮,用于获取用户输入和执行相应的操作。同时,我们也创建了一个名为result_listbox的列表框,用于展示查询结果。
最后,我们创建了一个Application对象,并启动了GUI界面:
```python
root = tk.Tk()
app = Application(master=root)
app.mainloop()
```
这样,一个简单的学生信息管理系统就完成了。完整代码如下:
阅读全文