从两个表中获取 ComboBox 值
Posted
技术标签:
【中文标题】从两个表中获取 ComboBox 值【英文标题】:Get ComboBox Value From Two Tables 【发布时间】:2020-09-09 22:35:16 【问题描述】:我有两张桌子:
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 个表中获取数据。
【问题讨论】:
【参考方案1】:我想办法解决我的问题
为其他人编写代码,也许有人也有这个问题
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;
【讨论】:
【参考方案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
【讨论】:
数字在 TblNum 中,我加载 cmbMaster.DataSource = db.MasterRepository.Get(); (我将数据绑定到 mastertable 我如何也可以从 numtable 获取数据) 阿里我根据您的反馈进行了更改。如果您有任何问题,请告诉我。 我必须添加具有此名称的新组合框cmbNumber
?
根据您放在那里的代码似乎没有更好的解决方案。以上是关于从两个表中获取 ComboBox 值的主要内容,如果未能解决你的问题,请参考以下文章
双击datagridview后,Combobox中的SelectedValue
在 MS Access 中使用 VBA 查看 Combobox 中的唯一值