使用泛型集合动态填充下拉框
在这里首先介绍一下常用 命名规范
解决方案: 一般是项目名称+Pro
用户界面层 : 一般是项目名称
业务逻辑层:
- BLL / 项目名称 + BLLL
- 业务逻辑类一般使用:实体类名 + Manager / 实体类名 + Biz
数据访问层 :
- DAL / 项目名称 +DAL
- 数据访问类一般使用 : 实体类名 + Service / 实体类名 +Dao
实体对象 : 一般和数据库实体相同
/// <summary>
/// 班级数据访问类 后台
/// </summary>
public class StudentClassService
{
/// <summary>
/// 获取所有的班级对象 使用泛型
/// </summary>
/// <returns></returns>
public List<StudentClass> GetAllClass() {
string sql = "select ClassName,ClassId from StudentClass";
SqlDataReader objReader = SQLHelper.GetReader(sql);
List<StudentClass> List = new List<StudentClass>();
while (objReader.Read())
{
//集合初始化器 直接添加
//new StudentClass 对象初始化器
List.Add(new StudentClass()
{
//封装 注意是逗号
ClassId = Convert.ToInt32(objReader["ClassId"]),
ClassName = objReader["ClassName"].ToString()
});
}
objReader.Close();
return List;
}
}
前台 : 所在班级的下拉框填充,属于初始化部分,然而初始化内容要写在构造方法中。
public partial class FrmAddStudent : Form
{
//初始化内容应该写在构造方法里面
//定义一个数据层访问对象
private StudentClassService objClassService = new StudentClassService();
public FrmAddStudent()
{
InitializeComponent();
//初始化班级下拉框
this.cboClassName.DataSource = objClassService.GetAllClass();
this.cboClassName.DisplayMember = "ClassName";
this.cboClassName.ValueMember = "ClassId";
this.cboClassName.SelectedIndex = -1;
}
}
前台 后台 属性最好有对应关系,对应的原因是实体类的属性对应,万一不对应,得以实体类为主。数据库里面的实体类字段叫什么,我们所对应的实体类属性就应该叫什么。
list<>这种泛型集合的方式是最好的,它最能体现面向对象编程的思想,这种也在工作中经常用到。
本文有什么不足,请各位大佬们指正批评。