get列并将其绑定到下拉列表c#

本文关键字:下拉列表 绑定 get | 更新日期: 2023-09-27 18:09:56

我有5个项目的WCF服务设置不同的层,如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);
        }

get列并将其绑定到下拉列表c#

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