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);
}
您不是试图检索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
, DisplayMember
和DataSource
。下次,在使用不同的属性之前,先阅读它们。这个表单的代码应该是这样的:
IHotRes res = new MHotServiceProvider().Service;
ddlGender.ValueMember = "GenderId";
ddlGender.DisplayMember = "Gender";
ddlGender.DataSource = gender;