0

我有WCF服務設置5個不同層次的項目,如DAL,桌面,模型,界面和服務。 BAL使用來自DAL的存儲過程來檢索存儲在數據庫中的數據。如何從位於服務中的BAL調用數據庫列表以在下拉列表中顯示錶單上的數據。獲取列並將其綁定到下拉列表C#

這裏是我的BAL:

public class GenderBAL 
{ 
    public Genders GetGenders(Int32 id) 
    { 
     Genders item = null; 
     using (GenderTableAdapter ad = new GenderTableAdapter()) 
     { 
      using (mHotRes.DAL.dstGender.GenderDataTable tbl = new DAL.dstGender.GenderDataTable()) 
      { 
       ad.GetGendersInfo(); 
       if(tbl.Rows.Count == 1) 
       { 
        mHotRes.DAL.dstGender.GenderRow row = tbl[0]; 
        item = new Genders(); 
        item.GenderId = row.GenderId; 
       } 
      } 
     } 
     return item; 
    } 
} 

}

這裏是我的表:

private void FillLookups() 
    { 
     try 
     { 
      IHotRes res = new MHotServiceProvider().Service; 
      ddlGender.DataSource = res.GetGenders(1); 
      ddlGender.DataSource = "Gender"; 
     } 
     catch(Exception ex) 
     { 
      MessageHelper.ShowErrorMessage(ex); 
     } 
+0

只需添加'ddlGender.DataBind();'此行之後:'ddlGender.DataSource = res.GetGenders(1);'和刪除此行:'ddlGender。 DataSource =「Gender」;' –

+0

@UZIERSKI我認爲你正在尋找如何將值和文本綁定到下拉菜單 –

+0

@ChandrashekarJupalli我只想從數據庫中獲取值並將其綁定到下拉列表。表單的代碼不完全正確我有'ddlGender.DataSource = res.GetGenders(1);' – UZIERSKI

回答

0

你是不是想找回ID您試圖從數據庫中檢索列表這就是爲什麼代碼應該看起來像BAL:

public class GenderBAL 
{ 
    public List<Genders> GetGenderList() 
    { 
     List<Genders> gender = null; 
     Genders itm = null; 
     using (GenderTableAdapter adp = new GenderTableAdapter()) 
     { 
      using (DAL.dstLookup.GenderDataTable tbl = adp.GetGenderDataList()) 
      { 
       if(tbl.Count>0) 
       { 
        gender = new List<Genders>(); 

        foreach(var row in tbl) 
        { 
         itm = new Genders(); 
         itm.GenderId = row.GenderId; 
         itm.Gender = row.Gender; 
         gender.Add(itm); 
        } 
       } 
      } 
     } 
     return gender; 
    } 
} 

}

還要將所有圖層更改爲您已使用Genders GetGenders(Int32 id)獲取上述列表的位置。

對於桌面圖層也會調用列表並記住組合框需要設置三個屬性,分別是ValueMember,DisplayMemberDataSource。下次在使用它們之前閱讀有關不同的屬性。表單的代碼應該是這樣的:

IHotRes res = new MHotServiceProvider().Service; 
ddlGender.ValueMember = "GenderId"; 
ddlGender.DisplayMember = "Gender"; 
ddlGender.DataSource = gender;