【问题标题】:How to display the total number of hours for each day using linq in each day's TextBox control?如何在每天的 TextBox 控件中使用 linq 显示每天的总小时数?
【发布时间】:2015-02-16 07:24:02
【问题描述】:

我是 LINQ-to-Entities 世界的新手,我正在尝试显示(一周中每天每项任务的小时总和) 在为每天的总小时数指定的 TextBox 中。

我在数据库中有以下表格:

Task Table: TaskId, Description
Sheet Table: SheetId, WeekNumber
SheetEntry Table: SheetEntryId, SheetId, TaskId
EntryDetail Table: EntryDetailId, SheetEntryId, WorkDay, Hours

我的 aspx 页面中有以下文本框:

<asp:TextBox ID="txtSun" runat="server" CssClass="input-mini" placeholder="Sunday's Total"></asp:TextBox>
<asp:TextBox ID="txtMon" runat="server" CssClass="input-mini" placeholder="Monday's Total"></asp:TextBox>
<asp:TextBox ID="txtTue" runat="server" CssClass="input-mini" placeholder="Tuesday's Total"></asp:TextBox>
<asp:TextBox ID="txtWed" runat="server" CssClass="input-mini" placeholder="Wednesday's Total"></asp:TextBox>
<asp:TextBox ID="txtThu" runat="server" CssClass="input-mini" placeholder="Thursday's Total"></asp:TextBox>
<asp:TextBox ID="txtFri" runat="server" CssClass="input-mini" placeholder="Friday's Total"></asp:TextBox>
<asp:TextBox ID="txtSan" runat="server" CssClass="input-mini" placeholder="Saturday's Total"></asp:TextBox>

我编写了以下 LINQ 查询,它显示一周中每天的总小时数,但我不确定它是否运行良好:

var query = (from detail in context.EntryDetail
                            group detail by new { detail.Workday } into g
                            select new {
                                Date = g.Key.Workday,
                                Total = g.Sum(x => x.Hours)
                            }).ToList();

那么如何在其指定的 TextBox 控件中显示每天的总小时数?

请注意,一周从星期日开始。

【问题讨论】:

    标签: c# asp.net linq linq-to-entities


    【解决方案1】:

    编写查询的最佳方式是:

    这将只给出总小时数。
    var query1 = context.EntryDetail.GroupBy(_x => _x.WorkDay).Select(_x => _x.Sum(c => c.Hours)).ToList();

    这将以 .
    的形式给出一对 var query2 = context.EntryDetail.GroupBy(_x => _x.WorkDay).Select(_x => new {day =_x.Key, totalhours = _x.Sum(c => c.Hours)}).ToList();

    然后您可以根据您在此查询中获得的日期添加到文本框中。

    foreach(查询 2 中的变量项)
    {
    开关(item.day)
    {
    案例“星期日”:texSun.Text = item.totalhours;
    休息;
    案例“星期一”:texMon.Text = item.totalhours;
    休息;
    //其他情况同理
    }
    }

    【讨论】:

    • 感谢您的帮助。你能告诉我如何在 TextBoxes 中显示值吗?
    • 更新了将 totalhours 添加到复选框的答案。
    • 感谢您的帮助。我真的很感激。
    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 2018-08-29
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    相关资源
    最近更新 更多