You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.6 KiB

from tkinter import END, INSERT
from tkinter.messagebox import *
from dao.StudentDao import StudentDao
from utils.ExcelUtils import ExcelUtils
class StudentService:
@staticmethod
def add_student(list_entry):
sno = list_entry[0].get()
if sno == '':
showwarning(title="警告", message="学号不能为空!\n加入失败!")
return
result = StudentDao.query_student(sno) # 根据学号查询学生
if result is not None:
showwarning(title="警告", message="学号重复!\n加入失败!")
return
sql = "INSERT INTO t_student(sno,sname,sex,age,phone,dormNo) VALUES(%s,%s,%s,%s,%s,%s)"
StudentDao.update_student(sql, list_entry[0].get(), list_entry[1].get(), list_entry[2].get(),
list_entry[3].get(), list_entry[4].get(), list_entry[5].get())
showinfo(title="提示", message="加入成功!")
return True
@staticmethod
def delete_student(sno):
result = StudentDao.query_student(sno) # 根据学号查询学生
if result is None:
showerror(title="错误", message="不存在该学生!")
return
sql = "DELETE FROM t_student WHERE sno = %s"
StudentDao.update_student(sql, sno)
showinfo(title="提示", message="删除成功!")
return True
@staticmethod
def query_student(sno, list_entry):
result = StudentDao.query_student(sno) # 根据学号查询学生
if result is None:
showwarning(title="警告", message="未查询到相关学生信息!")
return
list_entry[0].insert(INSERT, result[2])
list_entry[1].insert(INSERT, result[3])
list_entry[2].insert(INSERT, result[4])
list_entry[3].insert(INSERT, result[5])
list_entry[4].insert(INSERT, result[6])
@staticmethod
def update_student(sno, list_entry):
result = StudentDao.query_student(sno) # 根据学号查询学生
if result is None:
showerror(title="错误", message="不存在该学生!")
return
sql = "UPDATE t_student SET sname = %s,sex = %s,age = %s,phone = %s,dormNo = %s WHERE sno = %s"
StudentDao.update_student(sql, list_entry[0].get(), list_entry[1].get(), list_entry[2].get(),
list_entry[3].get(), list_entry[4].get(), sno)
showinfo(title="提示", message="修改成功!")
return True
@staticmethod
def query_all(lb):
result = StudentDao.query_all()
for row in result:
lb.insert(END,
"ID:%s 学号:%s 姓名:%s 性别:%s 年龄:%s 电话:%s 宿舍号:%s" % (
row[0], row[1], row[2], row[3], row[4], row[5], row[6]))
@staticmethod
def to_excel():
data = {}
list_Id = []
list_sno = []
list_name = []
list_sex = []
list_age = []
list_phone = []
list_dormNo = []
for row in StudentDao.query_all():
list_Id.append(row[0])
list_sno.append(row[1])
list_name.append(row[2])
list_sex.append(row[3])
list_age.append(row[4])
list_phone.append(row[5])
list_dormNo.append(row[6])
data['ID'] = list_Id
data['学号'] = list_sno
data['姓名'] = list_name
data['性别'] = list_sex
data['年龄'] = list_age
data['电话'] = list_phone
data['宿舍'] = list_dormNo
ExcelUtils.to_excel(data)
showinfo(title="提示", message="导出成功!")