编写图形界面应用程序实现学生信息的添加、查询和删除学生信息存储在SQLite数据库中如dstudentsdb文件。要求:1单击添加按钮可以将入框的学号、姓名、性别、年龄信息添加到数据库中。2单击查询根据学号查询对应数据库的学生的信息并显示在文本框。如不存在则弹出提示框。3单击删除根据学号删除该学生在数据库的信息。如该学号不存在则弹出提示框。4单击清除将文本框的内容清空。python
代码如下:
import sqlite3 import tkinter as tk from tkinter import messagebox
连接数据库
conn = sqlite3.connect('d:\students.db') cursor = conn.cursor()
创建学生表
cursor.execute('''CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT NOT NULL, sex TEXT NOT NULL, age INTEGER NOT NULL)''')
定义添加学生信息函数
def add_student(): # 获取输入框的内容 id = int(id_entry.get()) name = name_entry.get() sex = sex_entry.get() age = int(age_entry.get())
# 向数据库中添加学生信息
cursor.execute("INSERT INTO students (id, name, sex, age) VALUES (?, ?, ?, ?)", (id, name, sex, age))
conn.commit()
# 清空输入框
id_entry.delete(0, tk.END)
name_entry.delete(0, tk.END)
sex_entry.delete(0, tk.END)
age_entry.delete(0, tk.END)
定义查询学生信息函数
def query_student(): # 获取输入框的内容 id = int(id_entry.get())
# 查询数据库中该学号对应的学生信息
cursor.execute("SELECT * FROM students WHERE id=?", (id,))
student = cursor.fetchone()
# 如果查到了学生信息,则显示在文本框中
if student:
name_entry.delete(0, tk.END)
name_entry.insert(0, student[1])
sex_entry.delete(0, tk.END)
sex_entry.insert(0, student[2])
age_entry.delete(0, tk.END)
age_entry.insert(0, student[3])
# 如果没查到学生信息,则弹出提示框
else:
messagebox.showinfo('提示', '该学号对应的学生不存在!')
定义删除学生信息函数
def delete_student(): # 获取输入框的内容 id = int(id_entry.get())
# 删除数据库中该学号对应的学生信息
cursor.execute("DELETE FROM students WHERE id=?", (id,))
conn.commit()
# 清空输入框
id_entry.delete(0, tk.END)
name_entry.delete(0, tk.END)
sex_entry.delete(0, tk.END)
age_entry.delete(0, tk.END)
创建主窗口
window = tk.Tk() window.title('学生信息管理系统')
创建标签和输入框
id_label = tk.Label(window, text='学号:') id_label.grid(row=0, column=0, padx=10, pady=10) id_entry = tk.Entry(window) id_entry.grid(row=0, column=1, padx=10, pady=10)
name_label = tk.Label(window, text='姓名:') name_label.grid(row=1, column=0, padx=10, pady=10) name_entry = tk.Entry(window) name_entry.grid(row=1, column=1, padx=10, pady=10)
sex_label = tk.Label(window, text='性别:') sex_label.grid(row=2, column=0, padx=10, pady=10) sex_entry = tk.Entry(window) sex_entry.grid(row=2, column=1, padx=10, pady=10)
age_label = tk.Label(window, text='年龄:') age_label.grid(row=3, column=0, padx=10, pady=10) age_entry = tk.Entry(window) age_entry.grid(row=3, column=1, padx=10, pady=10)
创建按钮
add_button = tk.Button(window, text='添加', command=add_student) add_button.grid(row=4, column=0, padx=10, pady=10)
query_button = tk.Button(window, text='查询', command=query_student) query_button.grid(row=4, column=1, padx=10, pady=10)
delete_button = tk.Button(window, text='删除', command=delete_student) delete_button.grid(row=4, column=2, padx=10, pady=10)
clear_button = tk.Button(window, text='清除', command=lambda: (id_entry.delete(0, tk.END), name_entry.delete(0, tk.END), sex_entry.delete(0, tk.END), age_entry.delete(0, tk.END))) clear_button.grid(row=4, column=3, padx=10, pady=10)
进入消息循环
window.mainloop()
关闭数据库连接
conn.close(
原文地址: http://www.cveoy.top/t/topic/go98 著作权归作者所有。请勿转载和采集!