C# 从组合框中获取选定值,数据源为匿名类型
我用这种方法填充组合框C# 从组合框中获取选定值,数据源为匿名类型,c#,entity-framework,linq,C#,Entity Framework,Linq,我用这种方法填充组合框 KimyatEntities db = new KimyatEntities(); var BranchData = db.SpSelectBranch(); CBBranchName.DataSource = BranchData.ToList(); CBBranchName.DisplayMember = "Branch_Name"; CBBranchName.ValueMember = "Branch_ID"; 我想通过linq查询获取组合框的选定值 int Br
KimyatEntities db = new KimyatEntities();
var BranchData = db.SpSelectBranch();
CBBranchName.DataSource = BranchData.ToList();
CBBranchName.DisplayMember = "Branch_Name";
CBBranchName.ValueMember = "Branch_ID";
我想通过linq查询获取组合框的选定值
int BranchID=Convert.ToInt32(CBBranchName.SelectedValue);
var EmployeeData = from E in db.EmployeeTbls
join B in db.BranchTbls
on E.Branch_ID equals B.Branch_ID
where E.Branch_ID == BranchID
select new { E.Employee_Name, E.Hire_Date, B.Branch_Name };
DGVEmployee.DataSource = EmployeeData.ToList();
试试这个:
var EmployeeData = from E in db.EmployeeTbls
join B in db.BranchTbls
on E.Branch_ID equals B.Branch_ID
where E.Branch_ID == BranchID
select new { Branch_ID= E.Branch_ID , Branch_Name= B.Branch_Name };
我通过添加以下内容解决了问题: 1) 性质
public int BranchSelectedID { get; set; }
2) 阶级
3) 绑定组合框代码
void bindBranch_ComboBox()
{
db = new KimyatEntities();
CBBranchName.Items.Clear();
var BranchData = (from B in db.BranchTbls
select new { B.Branch_ID, B.Branch_Name }).ToList();
foreach (var item in BranchData)
{
CBBranchName.Items.Add(new BranchItem(item.Branch_ID, item.Branch_Name));
}
}
之后,根据所选组合框的不同,绑定网格视图的索引发生了变化
private void CBBranchName_SelectedIndexChanged(object sender, EventArgs e)
{
//The SelectedIndexChanged event
int SelectedBranch = CBBranchName.SelectedIndex;
BranchItem Selected = CBBranchName.Items[SelectedBranch] as BranchItem;
if (Selected!=null)
{
BranchSelectedID = Selected.ID;
}
DGVEmployee.Rows.Clear();
var EmployeeData = from E in db.EmployeeTbls
join B in db.BranchTbls
on E.Branch_ID equals B.Branch_ID
where E.Branch_ID == BranchSelectedID
select new { E.Employee_ID, E.Employee_Name, E.Hire_Date, B.Branch_Name };
if (EmployeeData != null)
{
foreach (var item in EmployeeData)
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(DGVEmployee);
row.Cells[0].Value = item.Employee_ID;
row.Cells[1].Value = item.Employee_Name;
row.Cells[2].Value = item.Hire_Date;
row.Cells[3].Value = item.Branch_Name;
DGVEmployee.Rows.Add(row);
}
}
}
private void CBBranchName_SelectedIndexChanged(object sender, EventArgs e)
{
//The SelectedIndexChanged event
int SelectedBranch = CBBranchName.SelectedIndex;
BranchItem Selected = CBBranchName.Items[SelectedBranch] as BranchItem;
if (Selected!=null)
{
BranchSelectedID = Selected.ID;
}
DGVEmployee.Rows.Clear();
var EmployeeData = from E in db.EmployeeTbls
join B in db.BranchTbls
on E.Branch_ID equals B.Branch_ID
where E.Branch_ID == BranchSelectedID
select new { E.Employee_ID, E.Employee_Name, E.Hire_Date, B.Branch_Name };
if (EmployeeData != null)
{
foreach (var item in EmployeeData)
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(DGVEmployee);
row.Cells[0].Value = item.Employee_ID;
row.Cells[1].Value = item.Employee_Name;
row.Cells[2].Value = item.Hire_Date;
row.Cells[3].Value = item.Branch_Name;
DGVEmployee.Rows.Add(row);
}
}
}