获取列并将其绑定到下拉列表C#

时间:2016-10-03 12:02:20

标签: c# wcf stored-procedures drop-down-menu desktop-application

我为WCF服务设置了5个项目,用于不同的层,如DAL,桌面,模型,界面和服务。 BAL使用来自DAL的存储过程来检索存储在数据库中的数据。如何从服务中的BAL调用数据库列表,以在下拉列表中的表单上显示数据。

这是我的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);
        }

1 个答案:

答案 0 :(得分: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)的位置,以获取上述列表。

对于桌面图层也调用列表并记住组合框需要设置三个属性ValueMemberDisplayMemberDataSource。下次在使用它们之前阅读不同的属性。表单的代码应为:

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