在DataGridView中显示不存在的(在数据库表中)列

时间:2018-10-12 13:51:44

标签: c# sql-server entity-framework linq

我有一张表'Employee',上面有名字,姓氏,dateOfBirth等。

该表不包含Age列,但我需要在DataGridView中使用名称来计算和显示年龄。

赞:

John  30 

Mary  25 

问题是我执行查询时

select FirstName, DATEDIFF(yy, DateOfBirth, GETDATE()) as Age from Empoyee

在SQL Server中,我得到了所需的信息,但是当我尝试填充DataGridView时,Age列显示不正确。

edDataGridView.AutoGenerateColumns = false;
edDataGridView.DataSource = context.Empoyee.SqlQuery("SELECT FirstName, DATEDIFF(yy, DateOfBirth, GETDATE()) as Age from Empoyee").ToList();

请告诉我如何正确执行此操作。可能我应该使用LINQ吗?

1 个答案:

答案 0 :(得分:0)

由我自己解决,谢谢所有人)

        edDataGridView.AutoGenerateColumns = false;

        var query = from e in context.Empoyee
                    select new
                    {
                        e.FirstName, Age = DateTime.Now.Year - e.DateOfBirth.Year
                    };

        edDataGridView.DataSource = query.ToList();