从两个表中获取 ComboBox 值
Get ComboBox Value From Two Tables
我有两个表:
TblNum:
TblMaster:
TblMaster
与 TblNum
和 ( NumID
)
有关系
我有 1 个组合框,我想通过读取 TblMaster
并显示 TblNum
.Number
来将数据值加载到我的组合框。
实际上,我在加载表单上使用此代码:
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbMaster.DisplayMember = "NumID";
cmbMaster.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
cmbMaster.DataSource = db.MasterRepository.Get();
}
}
使用此代码,我可以在组合框中看到 (1, 2, 3, 4, 5)
预期结果:
如何在我的 DisplayMember
中加载 Number01 , Number02 , Number03 , Number04 , Number05
而不是 1, 2, 3, 4, 5
?
编辑:
我需要从 TblMaster
获取数据值并从 TblNum
查看名称
cmbMaster.DisplayMember = "Number";
cmbMaster.ValueMember = "MasterID";
我不知道如何从 1 个组合框的 2 个表中获取数据。
将代码更改为
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbLayerName.DisplayMember = cmbNumber.Where(x => x.NumID == "NumID").Select(y => y.Number).First();
cmbLayerName.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
cmbMaster.DataSource = db.MasterRepository.Get();
cmbNumber.DataSource = db.NumberRepository.Get();
}
}
您正在绑定NumID,这里需要绑定Number
我想办法解决我的问题
并为其他人编写代码也许有人也有这个问题
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbMaster.DisplayMember = "Number";
cmbMaster.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
var result = (from master in db.MasterRepository.Get()
join number in db.tblNumRepository.Get() on master.NumID equals number.NumID
select new
{
master.MasterID,
number.Number,
}).ToList();
cmbMaster.DataSource = result;
}
}
我有两个表:
TblNum:
TblMaster:
TblMaster
与 TblNum
和 ( NumID
)
我有 1 个组合框,我想通过读取 TblMaster
并显示 TblNum
.Number
来将数据值加载到我的组合框。
实际上,我在加载表单上使用此代码:
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbMaster.DisplayMember = "NumID";
cmbMaster.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
cmbMaster.DataSource = db.MasterRepository.Get();
}
}
使用此代码,我可以在组合框中看到 (1, 2, 3, 4, 5)
预期结果:
如何在我的 DisplayMember
中加载 Number01 , Number02 , Number03 , Number04 , Number05
而不是 1, 2, 3, 4, 5
?
编辑:
我需要从 TblMaster
获取数据值并从 TblNum
cmbMaster.DisplayMember = "Number";
cmbMaster.ValueMember = "MasterID";
我不知道如何从 1 个组合框的 2 个表中获取数据。
将代码更改为
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbLayerName.DisplayMember = cmbNumber.Where(x => x.NumID == "NumID").Select(y => y.Number).First();
cmbLayerName.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
cmbMaster.DataSource = db.MasterRepository.Get();
cmbNumber.DataSource = db.NumberRepository.Get();
}
}
您正在绑定NumID,这里需要绑定Number
我想办法解决我的问题
并为其他人编写代码也许有人也有这个问题
private void frmOrgChartsManage_Load(object sender, EventArgs e)
{
//Load ComboBox Source from MasterTable
using (UnitOfWork db = new UnitOfWork())
{
// At first assign properties DisplayMember and ValueMember.
cmbMaster.DisplayMember = "Number";
cmbMaster.ValueMember = "MasterID";
// And then assign DataSource property of the cmbMaster.
var result = (from master in db.MasterRepository.Get()
join number in db.tblNumRepository.Get() on master.NumID equals number.NumID
select new
{
master.MasterID,
number.Number,
}).ToList();
cmbMaster.DataSource = result;
}
}