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