获取列并将其绑定到下拉列表 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)
获取上述列表的位置。
对于桌面层也调用列表,记住组合框需要设置三个属性,即ValueMember
、DisplayMember
和DataSource
。下次在使用它们之前阅读不同的属性。表格的代码应该是这样的:
IHotRes res = new MHotServiceProvider().Service;
ddlGender.ValueMember = "GenderId";
ddlGender.DisplayMember = "Gender";
ddlGender.DataSource = gender;
我为 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)
获取上述列表的位置。
对于桌面层也调用列表,记住组合框需要设置三个属性,即ValueMember
、DisplayMember
和DataSource
。下次在使用它们之前阅读不同的属性。表格的代码应该是这样的:
IHotRes res = new MHotServiceProvider().Service;
ddlGender.ValueMember = "GenderId";
ddlGender.DisplayMember = "Gender";
ddlGender.DataSource = gender;