多表查询、批量导出

多表查询

多表查询就是根据多个表的数据进行联表查询,每一次的查询都是根据项目的需求进行查询;然后在把相对应的表在数据库里查看数据,然后在控制器里定义一个查询方法。
下面是项目需求的表格;
在这里插入图片描述
看到这一行我们就知道该查询哪些数据,现在我们转到控制器定义一个查询方法。
多表查询、批量导出_第1张图片
定义一个变量 var listStudent 然后from加tb范围变量in加一个mymodel的数据源
查询学生表在连接学院表、专业表、班级表、年级表、用户表;然后where条件用户表里的ToVoidNo为真;然后是 select new(关键字) StudentInfor(类类型) 然后把所需要的数据进行赋值。
多表查询、批量导出_第2张图片
最后放在一个ToList里面。
因为我们要进行一个分页的返回,所以我们需要定义一个变量来获得这一段数据的总长度
int totalRows = listStudent.Count();(总条树)然后在获取一个分页的数据查询
List list = listStudent.OrderBy(m => m.studentID)
.Skip(layuiTablePage.GetStartIndex()).Take(layuiTablePage.limit).ToList();
LayuiTableData layuiTableData = new LayuiTableData();
layuiTableData.count = totalRows;
layuiTableData.data = list;最后放回一个layuiTableData。

控制器的多表查询就完成了然后我们需要转到视图进行一个表格渲染
首先我们需要定义一下变量为我们接下来的表格渲染做准备, 然后是绑定表格数据,在通过(use)加载我们所需要的模块,然后调用一个render方法里面有具体的配置参数;elem(#table表格的id)
toolbar:(工具条的加载)cols;(表头的设置)page(分页开启)然后表格的渲染基本完成。
多表查询、批量导出_第3张图片

批量导出

批量导出就是把当前我们所查询出来的数据导出到excel表格下载,批量导入在大多数时候是用不到的,只有我们需要把数据传导出到别的地方我们才需要用到批量导出。在做批量导出的时候我们需要把我们想要导出的数据查询出来,然后在创建Excel对象和Excel的工作簿 在个sheet的表头添加标题 然后在用sheet方法设置身份证列、学院列、专业列的宽度,然后在给sheet的每行添加数据。
多表查询、批量导出_第4张图片
然后在获取输出文件的名称;把Excel转化为文件流输出,在定义文件流 、在将创建的工作簿写入文件流里面;然后在调用seek 获取文件的长度。
多表查询、批量导出_第5张图片
来到视图,我们先获取批量导出的点击事件;然后获取学院id、年级id、班级id的值在用if的方法处理这id的值;最后在加一个判断;如果没有任何的选择就导出全院的数据或者 导出当前的数据。在用layer.confirm提示(是否导出全校数据?若不需要请筛选数据)然后直接调用 window.open(“ExportExamineeByID?AcademeID=” + AcademeID + “&GradeID=” + GradeID + “&ClassID=” + ClassID);这个方法。
多表查询、批量导出_第6张图片

你可能感兴趣的:(多表查询、批量导出)