C

雅轩聊科技 2024-07-31 17:18:41

哈喽,你好啊,我是雷工!

关于将数据库内的数据动态的添加到下拉框内的功能实现 在《账号管理系统》的练习中有过记录。

可以参考《》。

这里记录在本示例中的实现过程。

以下为练习笔记。

01 效果演示

在添加人员界面的所在组织下拉框中的内容,来自数据库中的Groups表内的所有组织信息,当打开添加人员界面时,自动查询添加到该下拉框内,

显示效果如下图:

02 数据插入

在LeiGongPMDB数据库的Groups组中插入相关数据:

2.1、插入语句

--插入组织数据insert into Groups(GroupId,GroupName) values(1,'取经团队')insert into Groups(GroupId,GroupName) values(2,'西方世界')insert into Groups(GroupId,GroupName) values(3,'天庭组')insert into Groups(GroupId,GroupName) values(4,'地府组')insert into Groups(GroupId,GroupName) values(5,'妖界组')insert into Groups(GroupId,GroupName) values(6,'花果山')

2.2、执行过程

选中插入数据的SQL语句,点击【执行】按钮,显示1受影响,则插入成功;

2.3、插入结果

查询表内数据,可以看到已经显示插入的组数据;

03 实现步骤

3.1、数据访问层

首先在数据访问层的组数据访问类中添加组查询的方法;

代码如下:

using Models;using System.Data.SqlClient;using System.Data;namespace DAL{/// <summary>/// 组数据访问类/// </summary>public GroupService {/// <summary>/// 查询所有的组对象/// </summary>/// <returns></returns>public List<Group>GetAllGroups() {string sql = "select GroupName,GroupId from Groups"; SqlDataReader objReader = SQLHelper.GetReader(sql); List<Group> list = new List<Group>();while(objReader.Read()) { list.Add(new Group() { GroupId = Convert.ToInt32(objReader["GroupId"]), GroupName = objReader["GroupName"].ToString() } ) ; } objReader.Close();return list; } }}

3.2、UI层

实现代码:

①引入命名空间:

using Models;using DAL;

②创建数据访问对象:

private GroupService groupService = new GroupService();private PeopleServer peopleServer = new PeopleServer();

③初始化组织选择下拉框:

this.cboGroupName.DataSource = groupService.GetAllGroups();this.cboGroupName.DisplayMember = "GroupName";//设置下拉框显示文本this.cboGroupName.ValueMember = "GroupId";//设置下拉框显示文本对应的值this.cboGroupName.SelectedIndex = -1;//设置不选中任意组织

3.3、属性设置

由于该下拉框的内容需要来自数据库,只可以选择,不可以输入,因此需要将DropDownStyle属性设置为DropDownList

04 后记

以上为基于泛型集合动态填充下拉框的记录,其中数据访问层中关于查询所有组对象方法的写法可能在大佬看来是繁琐落后的写法,但在学习阶段这是必须要经历的,如果跳过学习练习这种写法,直接用现在流行的看上去更简洁的写法一个是不利于理解,另一个不容易了解语言的演化过程和基本原理;

有记录的不足之处大家可以留言指正,也可以在交流群内探讨。

0 阅读:0

雅轩聊科技

简介:感谢大家的关注