c# - 填充组合框

标签 c# mysql

如何使用 3tier 架构填充组合框?我使用了这段代码;

private void BindDepName()
    {
        MySqlConnection con = new MySqlConnection("server=localhost;User Id=root;password=sa;database=employeedetails");
        con.Open();
        string MySql = "SELECT * FROM tbldept";
        MySqlDataAdapter da = new MySqlDataAdapter(MySql, con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DepName.DataSource = ds.Tables[0];
        DepName.ValueMember = "Dept_id";
        DepName.DisplayMember = "Dept_name";
        string i = ds.Tables[0].Rows[0].ItemArray[1].ToString();
        DepName.Text = "select dept";
        con.Close();
    } 

最佳答案

在 3tier 世界中,您将在 BusinessLogic 中拥有一个类(class)返回某种可枚举类型(IEnumerable、List、Collection、array...)的类库 Entities到用户界面;作为良好的实践,UI 不应直接与 DataTable 和 DataSet 一起使用。

您返回的用于填充 UI 控件(在您的情况下为组合框)的对象的实际类型取决于您的设计和首选项,如果您使用 Entity Framework ,您可以在 EF 设计器/模型中定义和建模实体。

架构的下部是Dala Access Layer ,将其想象为一个类库,它是唯一允许并能够建立与数据库的连接的,因此 mySql 连接管理和实际查询执行应该是隔离的,而不是从 DAL 向上暴露。

UI 调用 BL,BL 又调用 DAL。

DAL 连接数据库,查询实体并将其返回给 BL。

BL 将实体(集合类型)返回给 UI 进行绑定(bind)。

尝试一下并保持简单,仅作为开始,您可以跳过实体建模并返回数据表,以便测试逻辑。 :)

关于c# - 填充组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255623/

相关文章:

mysql - 拉拉维尔 : Get count of total number of pass and fail results from mysql

php - 在 MySQL 语句中动态使用 PHP 变量

c# - XPath:如何通过属性选择节点?

c# - 将 Dictionary<int, Object1> 转换为 Dictionary<int, Object2>

c# - 为什么对于那些喜欢类型安全的人来说 Null 不是类型安全的无关紧要

mysql - 使用 LIKE 时如何处理空字段值

mysql - Mysql可以缓存对具有相同参数的相同函数的调用吗

mysql - 在 vb.net 中更新组合框中的值时出现问题

c# - 检查实体是否已被删除

C# 将 B 类的对象分配给 A 类