交叉表的简单实现2:使用前端程序实现

上篇介绍了 交叉表的简单实现1:使用存储过程,这里采取在前端程序实现。
实现要点:
1。读取所有目标成绩(flatScroreTable)
2。从目标成绩中提取考试时间(不重复),作为交叉表的列表头
3。从目标成绩中提取考试科目(不重复),作为交叉表的行表头
4。根据2动态构建一个DataTable(crossScroreTable),此DataTable具有一个科目列,若干考试时间列,以及其他信息。
5。将3中的考试科目写入DataTable
6。从flatScroreTable中读取成绩值填入crossScroreTable对应单元格
说明:便于理解,这里将交叉表crossScroreTable想象成一张Excel表,列名就当作列表头,科目名就当作行表头。

主要代码:
void  LoadScoreData()
    
{
        
读取指定学生的所有成绩 读取指定学生的所有成绩

        DataTable flatScoreTable 
= ds.Tables[0];
        DataView flatScoreView 
= new DataView(flatScoreTable);
        
// 读取科目列表,排除重复
        DataTable subjectList;
        
// .NET 2 using the ToTable method supported by DataView
        
//subjectList = flatScoreView.ToTable("SubjectList", true, "SubjectName");        
        subjectList = SelectDistinct(flatScoreTable, "SubjectList"true"SubjectName");        
        
// 读取考试时间列表,排除重复
        
// .NET 2
        DataTable examDateList;
        
// .NET 2 using the ToTable method supported by DataView
        
//examDateList = flatScoreView.ToTable("ExamDateList", true, "ExamDate");        
        examDateList = SelectDistinct(flatScoreTable, "ExamDateList"true"ExamDate");        
       
        
#region 创建 交叉表
        DataTable crossScoreTable 
= new DataTable();
        
        
#region 构造表模式
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值