Я пытаюсь отобразить гистограмму с осью X в качестве метки времени для часов и по оси Y в качестве числа раз, когда автобус был отмечен. Но по какой-то причине программа умеет работать на visual studio, но ошибок нет. Я сделал точку останова, и это показывает, что я могу правильно разделить метку времени в группе часов 1200, 13:00 и 14:00. Но, кроме этого, я считаю, что есть проблема с подсчетом.
<asp:DropDownList ID="ddlBus" runat="server" Width="200px" OnSelectedIndexChanged="ddlBus_SelectedIndexChanged" AutoPostBack="true">
asp:ListItem Value="0">Select Bus Number</asp:ListItem>
<asp:ListItem Value="1">Bus 10</asp:ListItem>
<asp:ListItem Value="2">Bus 45</asp:ListItem>
<asp:ListItem Value="3">Bus 14</asp:ListItem>
</asp:DropDownList>
string query = string.Format("SELECT DATEPART(HH, [datetime]), COUNT(busFlagDataID) FROM BusFlagData WHERE busStopID='52014' GROUP BY DATEPART(HH,[dateTime]) ORDER BY DATEPART(HH,[dateTime]) ", ddlBus.SelectedItem.Value);
DataTable dt = GetData(query);
string[] x = new string[dt.Rows.Count];
decimal[] y = new decimal[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
x[i] = dt.Rows[i][0].ToString();
y[i] = Convert.ToInt32(dt.Rows[i][1]);
}
BarChart1.Series.Add(new AjaxControlToolkit.BarChartSeries { Data = y });
BarChart1.CategoriesAxis = string.Join(",", x);
BarChart1.ChartTitle = string.Format("{0} Bus Flagged for", ddlBus.SelectedItem.Value);
Это мои данные
CREATE TABLE [dbo].[BusFlagData] (
[busFlagDataID] INT IDENTITY (1, 1) NOT NULL,
[busStopID] VARCHAR (10) NOT NULL,
[busID] INT NOT NULL,
[dateTime] DATETIME2 (0) NOT NULL,
PRIMARY KEY CLUSTERED ([busFlagDataID] ASC),
CONSTRAINT [FK_BusFlagData_Bus] FOREIGN KEY ([busID]) REFERENCES [dbo].[Bus] ([busID]),
CONSTRAINT [FK_BusFlagData_BusStop] FOREIGN KEY ([busStopID]) REFERENCES [dbo].[BusStop] ([busStopID])
);