2011-08-31 114 views
0

如何使用3层架构填充组合框?我已经使用这个代码;填充组合框

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(); 
    } 

回答

1
在3TIER世界

你将不得不在BusinessLogic类库返回某种Entities用户界面枚举(IEnumerable的,列表,收藏,数组......)的一类;作为良好实践,UI不应直接与DataTable和DataSet一起工作。

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

架构的下部为Dala Access Layer,把它想象成一个类库是唯一一个允许并能够estabilish到数据库的连接,所以MySQL连接管理和实际查询执行应隔离而不是从DAL向上暴露。

UI调用调用DAL的BL。

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

BL向UI返回绑定的实体(类型的集合)。

给它一个尝试,并保持简单,只为了开始,你可以跳过实体建模并返回数据表,以便测试逻辑。 :)

+0

如何在表示层,bl,dal组合框的代码类 – fida

+0

请谷歌为它!比如我发现这个:http://dotnetslackers.com/articles/net/IntroductionTo3TierArchitecture.aspx –

+0

可以在DAL类中使用displaymember和value成员吗? – fida