第5章:实体类在程序中的高级应用


本章任务

  1. 实现年级/科目 ComboBox的联动
  2. 实现成绩表和学生表的多表查询

本章目标

  1. 会使用实体类实现ComboBox的联动

  2. 会使用实体类实现DataGridView的筛选

  3. 会使用实体类实现多表查询

本章内容

ComboBox 的数据绑定

使用ComboBox 绑定实体集合

ComboBox的数据联动

使用ComboBox 的SelectedIndexChanged 事件

使用DataGridView显示数据

  • 设置 DataGridView 控件和各列(Columns)的属性
  • 设置 DataSource 属性,绑定数据源

DataGridView 各列的主要属性

属性名称 说明
HeaderText 列标题文本
Visible 指定列是否可见
ReadOnly 指定单元格是否为只读
DataPropertyName 绑定的数据列的名称

显示关联表数据

问题:

如何显示多个表关联的数据

分析:

1.每一行数据对应多个实体

2.DataGridView 先绑定Result,然后获取Student 和Subject 数据

使用辅助列显示关联表数据

辅助列:作为中间数据的隐藏列

表示层关键代码

使用组合框显示关联表数据

使用组合框栏的步骤:

  1. 设置列的类型为DataGridViewComboBoxColumn

  2. 设置属性DisplayStyle

  3. 绑定外键表数据

  4. 设置ReadOnly属性值为True

使用扩展实体

扩展实体又称业务实体,一般由数据实体派生而来,为业务功能的需要而扩展.

本章总结

  • 使用ComboBox 实现数据的联动显示
  • 使用辅助列显示关联表数据的步骤
  • 使用组合框栏显示关联表数据
    • 先绑定主要数据,再通过外键属性值获取数据
    • 扩展实体类

课后作业

1.实现年级和科目的联动

  • 创建“查看成绩信息”窗体
  • 查询条件包括年级、科目和姓名
  • 年级和科目使用 ComboBox 显示数据
  • 实现年级和科目的联动效果

2.实现学生成绩查询

  • 在数据访问层实现查询学生成绩的方法
  • 支持按科目编号和学生姓名组合查询
  • 学生姓名为模糊查询
  • 在业务逻辑层调用数据访问层的方法