DEV ComboBoxEdit控件数据库绑定教程

5星 · 超过95%的资源 需积分: 47 186 下载量 114 浏览量 更新于2024-10-06 1 收藏 2KB TXT 举报
"这篇文章主要介绍了如何在DEV控件中使用ComboBoxEdit绑定数据库中的数据,使得下拉列表显示名称(Name),但在选择时实际使用的值是对应的ID。" 在开发过程中,我们经常需要将数据库中的数据与UI控件进行绑定,以便用户能够方便地选择和操作。DEV控件中的ComboBoxEdit是一个常用的组件,它结合了文本输入和下拉列表选择的功能。当我们要将其与数据库中的数据绑定时,通常希望下拉列表显示易于理解的名称,而在实际处理时使用对应的唯一标识ID。 1. 数据库结构:首先,假设我们有一个名为tb_CatalogInfo的表,其中包含两个字段,CatalogID作为主键,CatalogName存储名称。这种设计允许我们在界面上展示易于识别的名称,同时在后台处理时使用稳定的ID。 2. 模型定义:创建一个名为CatalogInfo的类来表示数据库中的每一行数据。这个类包含两个属性,一个是CatalogID(整型),另一个是CatalogName(字符串)。为了使ComboBoxEdit在显示时能直接使用CatalogName,我们需要重写ToString()方法,使其返回CatalogName。 ```csharp public class CatalogInfo { private int catalogID; private string catalogName; public int CatalogID { get { return catalogID; } set { catalogID = value; } } public string CatalogName { get { return catalogName; } set { catalogName = value; } } public override string ToString() { return this.CatalogName; } } ``` 3. 数据绑定:在客户端/服务器端(C/S)的代码中,我们需要创建一个ComboBoxEdit控件,这里命名为comboCatalog。首先创建一个CatalogInfo对象的列表,然后通过执行SQL查询从数据库中获取数据。这里使用了一个名为CommonData的辅助类来获取数据库连接,并执行SQL命令。读取结果集后,将每条记录转换为CatalogInfo对象并添加到列表中。 ```csharp private void BindComboBox() { List<CatalogInfo> CatalogList = new List<CatalogInfo>(); #region 从数据库获取数据并填充CatalogInfoList string query = "select * from tb_CatalogInfo"; CommonData commonData = new CommonData(); using (SqlConnection conn = commonData.GetConnection()) { conn.Open(); SqlCommand cmd = new SqlCommand(query, conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { CatalogInfo catalogInfo = new CatalogInfo(); catalogInfo.CatalogID = Convert.ToInt32(reader["CatalogID"]); catalogInfo.CatalogName = reader["CatalogName"].ToString(); CatalogList.Add(catalogInfo); } } #endregion // 将数据绑定到ComboBoxEdit comboCatalog.DataSource = CatalogList; comboCatalog.DisplayMember = "CatalogName"; // 设置显示的成员为CatalogName comboCatalog.ValueMember = "CatalogID"; // 设置值成员为CatalogID,用于获取选中的ID } ``` 这段代码完成了从数据库获取数据,转换为CatalogInfo对象列表,并将这个列表绑定到ComboBoxEdit控件的过程。ComboBoxEdit的DisplayMember属性设置为"CatalogName",意味着在界面中显示的是CatalogName。而ValueMember属性设置为"CatalogID",确保在用户选择一个项后,可以获取到相应的CatalogID用于后续的业务逻辑处理。 通过这样的方式,我们成功地实现了ComboBoxEdit控件与数据库中的tb_CatalogInfo表的绑定,使得用户在界面中看到的是名称,而程序内部操作的是ID,满足了在DEV控件中处理数据绑定的需求。