【问题标题】:Data grid View ( winform ) not populating properly数据网格视图 (winform) 未正确填充
【发布时间】:2013-02-01 06:54:18
【问题描述】:

我的数据库中有两个表 DepartmentFaculty 。我正在为我的 winform 应用程序中的部门列表填充一个 datagridview。我的两个表都在关注

部门

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

教师

  1. 斯诺(整数)
  2. 姓名
  3. 状态

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

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

现在,当我的表单加载时,它会像这样显示

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

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

提前致谢

编辑

我的数据库图

【问题讨论】:

  • 您需要使用join 查询带有faculty_id 的faculty 表。
  • 先生,我该如何使用它。我正在使用实体框架
  • Faculty_idFaculty table..的关系如何?
  • 这是一对多的关系。一个学院有多个部门
  • @Smartboy 在下面试试我的答案。

标签: c# winforms linq datagridview


【解决方案1】:

这是正确的连接:

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();

【讨论】:

  • @smartboy 不是列 Faculty_id 在您的表中包含教师 FK 吗?
【解决方案2】:

一切都取决于您的查询............您的查询应该包含两个带有 Join 的表。

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

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

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

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

1.main.Department
2.main.Faculty

【讨论】:

  • 那么,你的意思是我应该分配数据源 2 次,一次用于离开,一次用于教职员工?
【解决方案3】:

你需要加入你的桌子

类似:

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();

问候

【讨论】:

  • 你的代码没有编译我认为有一些错误,请看我的编辑我附上了我的数据库图,你会看到实际的名字
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 2020-08-19
相关资源
最近更新 更多