这是我的SQL查询结果
我试图通过按房间所属酒店的房间分组来构建C#Web表单的柱形图,如下图所示
以上查询结果存储在DataTable dt 中。下面是其余代码
List<string> rooms = (from p in dt.AsEnumerable() select p.Field<string>("Room")).Distinct().ToList();
string[] x = new string[dt.Rows.Count];
double[] y = new double[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
string room = dt.Rows[i][1].ToString();
//Get the Country for each Room.
x[i] = dt.AsEnumerable().
Where(row => row.Field<string>("Room") == room.ToString()).
Select(row => row.Field<string>("Country")).FirstOrDefault();
//Get the Busy % for each Room.
y[i] = dt.AsEnumerable().
Where(row => row.Field<string>("Room") == room.ToString())
.Select(m => m.Field<double>("Busy")).FirstOrDefault();
Chart1.Series.Add(new System.Web.UI.DataVisualization.Charting.Series(room));
Chart1.Series[room].IsValueShownAsLabel = true;
Chart1.Series[room].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Column;
Chart1.Series[room].Points.DataBindXY(x, y);
Array.Clear(x, 0, x.Length);
Array.Clear(y, 0, y.Length);
}
Chart1.Legends[0].Enabled = true;
编译后,我可以看到下图。我如何将房间系列归为同一家酒店。我们对此表示任何帮助。
更新:感谢TAW对原始帖子的帮助。我现在看到系列对齐问题。数据表现在具有4列酒店,房间,利用率,ID。属于同一酒店的房间将具有相同的ID,这就是我将X轴上的房间按ID分组的方式。之后,我将ID值替换回酒店名称作为X轴标签。但是,每次将新系列添加到图表时,具有不同值的系列都将转换为+1或-1(用于对齐的逻辑表示)。