2011-08-31 115 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