C# 填充组合框

C# 填充组合框,c#,mysql,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";

如何使用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();
    } 

在一个3层的世界中,
BusinessLogic
类库中有一个类,它将
实体的某种可枚举(IEnumerable、List、Collection、array…)返回到用户界面;作为良好实践,UI不应直接与DataTable和DataSet一起工作

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

体系结构的下部是
Dala访问层
,将其想象为一个类库,它是唯一允许并能够建立到数据库的连接的类库,因此mySql连接管理和实际查询执行应该是隔离的,而不是从DAL向上公开

UI调用BL,BL调用DAL

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

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


为了尝试一下并保持它的简单性(仅用于启动),您可以跳过实体建模并返回datatable,以便测试逻辑。:)

如何在演示层中为组合框编码,bl,dal类请用谷歌搜索!例如,我发现:displaymember和ValueMember可以在DAL类中使用吗?displaymember和ValueMember必须只在UI中设置,只有UI知道这些成员是什么以及它们的意思,DAL和BL对用于显示数据的UI控件一无所知。奇怪问题的回答很好:)…不,真的,@fida,您正在询问特定体系结构解决方案中的实际问题。当然,您可以用任何数据源(它是一个对象)填充组合框,无论您是如何获得该数据源的。所以您真正的问题是在3层中填充数据源。您编写的代码不是三层的。您直接从codebehind连接到DB,而不是通过一些代理类(通常是与DB一起工作的服务,并且只有它们才有权访问它..)。