【发布时间】:2015-03-15 16:09:42
【问题描述】:
我试图让两个请求我的 SQL 服务器计算每个月的每一天的两个不同的值,并将它们放入一个表中以在图表中使用。
我尝试使用 Union 将它们合并到一个 DataSource 中,但编译失败。以下代码为我提供了两个不同数据源中所需的结果。
这段代码为我提供了我需要的结果。
Dim ChartDataOpen = (From a In db.Alarms _
Where a.Generated >= FirstDayOfMonth(DateTimeNow) And a.Generated <= LastDayOfMonth(DateTimeNow) And a.IsClosed = False _
Group a By CalendarDate = a.Generated.Value.Date Into g = Group _
Select New With {CalendarDate, .AlarmCount = g.Count()})
Dim ChartDataClosed = (From a In db.Alarms _
Where a.Generated >= FirstDayOfMonth(DateTimeNow) And a.Generated <= LastDayOfMonth(DateTimeNow) And a.IsClosed = True _
Group a By CalendarDate = a.Generated.Value.Date Into g = Group _
Select New With {CalendarDate, .AlarmClosedCount = g.Count()})
这段代码是我的问题,我找不到一个聪明的方法来根据日历日期(2015 年 1 月 16 日)合并两个数据源并将它们添加到要在图表中使用的单个数据源中。
Dim ChartData = ChartDataOpen.Union(ChartDataClosed)
RadHtmlChartAvg.DataSource = ChartData
RadHtmlChartAvg.DataBind()
最终工作代码:
Dim ChartData = (From a In db.Alarms _
Where a.Generated >= FirstDayOfMonth(DateTimeNow) _
And a.Generated <= LastDayOfMonth(DateTimeNow) _
Group a By CalendarDate = a.Generated.Value.Date Into g = Group _
Select New With {
CalendarDate,
.AlarmCount = g.Count(),
.AlarmOpenCount = g.Count(Function(a) a.IsClosed = False),
.AlarmClosedCount = g.Count(Function(a) a.IsClosed = True)
})
【问题讨论】:
标签: vb.net linq merge datasource