# 删除学生信息 query = QSqlQuery() query.prepare('DELETE FROM student WHERE id = ?') for index in selected: query.addBindValue(index.siblingAtColumn(0).data()) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '删除学生失败') return # 刷新表格视图 self.model.select() def query_student(self): # 获取查询条件 department = self.departmentLineEdit.text() student_id = self.studentIdLineEdit.text() # 构造查询语句 query_str = 'SELECT * FROM student' if department: query_str += ' WHERE department = "{}"'.format(department) if student_id: query_str += ' AND student_id = "{}"'.format(student_id) elif student_id: query_str += ' WHERE student_id = "{}"'.format(student_id) # 执行查询 query = QSqlQuery(query_str) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '查询学生失败') return # 显示查询结果 query_model = QSqlTableModel() query_model.setQuery(query) self.tableView.setModel(query_model) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
时间: 2024-04-02 07:33:44 浏览: 17
这段代码是学生信息管理中的查询和删除功能。其中,删除学生信息部分是通过SQL语句删除数据库中对应的学生信息,如果删除失败则会弹出警告框,最后刷新表格视图。查询学生信息部分是获取查询条件,构造查询语句,执行查询并显示查询结果。查询语句部分根据输入的查询条件动态构造查询语句,如果查询失败则会弹出警告框。最后将查询结果显示在表格视图中。最后,如果该文件作为程序的入口,则创建QApplication对象并展示主窗口。
相关问题
# 校验学生信息 if not student_id or not name or not id_card or not phone: QMessageBox.warning(self, '警告', '请填写必填信息') return # 更新学生信息 query = QSqlQuery() query.prepare('UPDATE student SET student_id = ?, name = ?, gender = ?, id_card = ?, department = ?, grade = ?, major = ?, hometown = ?, phone = ?, email = ?, qq = ? WHERE id = ?') query.addBindValue(student_id) query.addBindValue(name) query.addBindValue(gender) query.addBindValue(id_card) query.addBindValue(department) query.addBindValue(grade) query.addBindValue(major) query.addBindValue(hometown) query.addBindValue(phone) query.addBindValue(email) query.addBindValue(qq) query.addBindValue(index.siblingAtColumn(0).data()) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '修改学生失败') return # 刷新表格视图 self.model.select() # 关闭对话框 dialog.close() def delete_student(self): # 获取选中的行 selected = self.tableView.selectionModel().selectedRows() if not selected: QMessageBox.warning(self, '警告', '请先选择要删除的学生') return
这段代码是关于学生信息管理的,其中包括校验学生信息、更新学生信息和删除学生信息的功能。其中,校验学生信息部分是判断必填信息是否填写完整,如果不完整则会弹出警告框。更新学生信息部分是通过SQL语句更新数据库中的学生信息,如果更新失败则会弹出警告框,最后刷新表格视图。删除学生信息部分则是获取选中的行,如果没有选中则会弹出警告框,否则会删除数据库中对应的学生信息。
if not student_id or not name or not id_card or not phone: QMessageBox.warning(self, '警告', '请填写必填信息') return # 插入学生信息 query = QSqlQuery() query.prepare('INSERT INTO student (student_id, name, gender, id_card, department, grade, major, hometown, phone, email, qq) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)') query.addBindValue(student_id) query.addBindValue(name) query.addBindValue(gender) query.addBindValue(id_card) query.addBindValue(department) query.addBindValue(grade) query.addBindValue(major) query.addBindValue(hometown) query.addBindValue(phone) query.addBindValue(email) query.addBindValue(qq) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '添加学生失败') return # 刷新表格视图 self.model.select() # 关闭对话框 dialog.close() def modify_student(self): # 获取选中的行 selected = self.tableView.selectionModel().selectedRows() if not selected: QMessageBox.warning(self, '警告', '请先选择要修改的学生') return
这段代码实现了向数据库添加学生信息的功能。首先,通过判断输入框中是否填写了必填信息(学号、姓名、身份证号码和电话号码),如果没有填写,则弹出警告对话框,并返回。如果填写了必填信息,则通过 QSqlQuery 对象创建 SQL 语句,将学生信息插入到数据库中。如果插入失败,则打印出错误信息,并弹出警告对话框。最后,刷新表格视图,以显示添加后的数据,并关闭添加学生信息对话框。
接下来,定义了 modify_student 方法,用于修改学生信息。在该方法中,首先通过调用 self.tableView.selectionModel().selectedRows() 方法获取当前选中的行,如果没有选中任何行,则弹出警告对话框并返回。