0

我的数据库中有两个表DepartmentFaculty . 我正在为我的 winform 应用程序中的部门列表填充一个 datagridview。我的两张桌子都在下面

部门

  1. 斯诺 (int)
  2. 名称 (varchar(max))
  3. 状态(位)
  4. Faculty_id (int)

学院

  1. 斯诺 (int)
  2. 姓名
  3. 地位

现在开始编写代码,我只需将 datagridview 拖放到我的表单中,然后转到文件后面的代码。在我表单的加载方法中,我编写了以下代码

        var main = new SRMEntities();
        var departs = main.Department.ToList();
        DepartmentGrid.DataSource = departs;

现在,当我的表单加载时,它显示如下 部门网格

在教员列中查看它没有显示任何内容,当我们创建部门时,我们将教员 ID 存储到部门中。我想在这里显示教员姓名。

如果您有任何问题,请告诉我。

提前致谢

编辑

我的数据库图

数据库

4

3 回答 3

2

这是正确的加入:

var main = new SRMEntities();
var query = from f in main.Faculty
            join d in main.Department on f.Sno equals d.Faculty.Sno
            select new { d.Sno, d.Name, d.Status, Faculty = f.Name };

DepartmentGrid.DataSource = query.ToList();
于 2013-02-01T07:30:35.833 回答
1

一切都取决于您的查询............您的查询应该包含两个表加入。

var main = new SRMEntities();
var departs = main.Department.ToList();
DepartmentGrid.DataSource = departs;

请检查上面的代码“main.Department.ToList();” 仅返回 Departments 并且您将“departs”分配给您的网格。

“main.Department”是否包含“Faculty”表信息?

通过查看您的代码,我猜您有一个单独的项目,如下所示

1.main.Department
2.main.Faculty
于 2013-02-01T07:27:40.477 回答
0

你需要加入你的桌子

就像是:

var main = new SRMEntities();

    var source = (from d in main.Department
                 join f in main.Faculty on d.Faculty.Sno=f.Sno
                 select new
                 {
                  Sno = d.Sno ,
                  Name = d.Name,
                  Status = d.Status, 
                  Faculty = f.Name
                 }
                 );   

    DepartmentGrid.DataSource = source.ToList();

问候

于 2013-02-01T07:04:28.267 回答