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

get column and bind it to drop down list C#

我为 DAL、桌面、模型、界面和服务等不同层设置了 5 个项目的 WCF 服务设置。 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);
        }

您不是在尝试检索 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;