0

我有一个包含 LINQ 查询并将结果作为 DataTable 返回的函数。我在使用返回的 DataTable 填充 DataGridView 时遇到问题。查询应该返回一些数据,但表看起来是空的。我的功能如下:

public static DataTable GetEmployeeTimesheets(int employeeId)
{
    DataTable table = new DataTable();

    using (PTMS_DataEntities entities = new PTMS_DataEntities())
    {
        var timesheets = from timesheet in entities.Timesheets
                         join timesheetTask in entities.Timesheet_Task
                         on timesheet.Id equals timesheetTask.Timesheet_Id
                         join task in entities.Tasks
                         on timesheetTask.Task_Id equals task.Id
                         join project in entities.Projects
                         on task.Project_Id equals project.Id
                         join department in entities.Departments
                         on project.Department_Id equals department.Id
                         where timesheet.Employee_Id == employeeId
                         select new
                         {
                             date = timesheet.Date,
                             taskName = task.Name,
                             projectName = project.Name,
                             projectDesc = project.Description,
                             departmentName = department.Name,
                             taskEstimatedHours = task.Estimated_Hours,
                             timesheetHours = timesheetTask.Hours
                         };

        table.Columns.Add("date");
        table.Columns.Add("taskName");
        table.Columns.Add("projectName");
        table.Columns.Add("projectDesc");
        table.Columns.Add("departmentName");
        table.Columns.Add("taskEstimatedHours");
        table.Columns.Add("timesheetHours");

        foreach (var item in timesheets)
        {
            table.Rows.Add(item.date, item.taskName, item.projectName,
                item.projectDesc, item.departmentName, item.taskEstimatedHours,
                item.timesheetHours);
        }
    }

    return table;
}

填充 DataGridView 的代码如下:

    TimesheetGrid.DataSource = EmployeeManager.GetEmployeeTimesheets(employeeId);
    TimesheetGrid.DataBind();  

我是在函数/LINQ 查询本身中做错了什么,还是我没有正确填充 DataGridView?

4

0 回答 0