Я пытаюсь отобразить простую диаграмму в моем приложении ASP.NET. Я попытался создать диаграмму с использованием массивов на странице aspx и смог это сделать. Но когда я пытаюсь отобразить данные из базы данных, ничего не происходит.Диаграмма не отображается в ASP.NET после DataBind
Я следовал этим инструкциям: http://www.aspsnippets.com/Articles/Create-ASPNet-Chart-Control-from-Database-using-C-and-VBNet-Example.aspx
за исключением части DDL. я выбираю дату и использую ее для моего запроса sql. Работа с функцией db работает, и в соответствии с тем, что я вижу в отладке, также происходит привязка. Но по какой-то причине ничего не появляется.
Вот код из ASPX:
<asp:Chart ID="ChartStats" runat="server" Visible = "false" >
<Titles>
<asp:Title ShadowOffset="3" Name="Items" />
</Titles>
<Legends>
<asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default" LegendStyle="Row" />
</Legends>
<Series>
<asp:Series Name="Default"></asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartStatsArea"></asp:ChartArea>
</ChartAreas>
</asp:Chart>
Вот код позади:
String date = Convert.ToDateTime(DateFrom.Text).ToString("yyyyMMdd");
string query = "select HOUR_BUCKET, count(START_CALL_COUNT) from ictappo.traffic_summary t where EVENT_START_DATE=" + date + " group by HOUR_BUCKET order by HOUR_BUCKET asc";
DataTable dataTable = new DataTable("TRAFFIC_SUMMARY");
ApplicationTables ApplTbl = new ApplicationTables("TRAFFIC_SUMMARY");
String SQLError = "";
dataTable = ApplTbl.GetTRAFFIC_SUMMARY(query, ref SQLError);
int[] x = new int[dataTable.Rows.Count];
int[] y = new int[dataTable.Rows.Count];
for (int i = 0; i < dataTable.Rows.Count; i++)
{
x[i] = i;
y[i] = Convert.ToInt32(dataTable.Rows[i][1]);
}
ChartStats.Series[0].Points.DataBindXY(x, y);
ChartStats.Series[0].ChartType = SeriesChartType.Pie;
ChartStats.ChartAreas["ChartStatsArea"].Area3DStyle.Enable3D = true;
ChartStats.Legends[0].Enabled = true;
Пожалуйста, помогите мне
UPDATE: я также пытался добавить эту строку в петля x, y (и удаление команды dataBINDXY), но это не помогло:
ChartStats.Series["Default"].Points.AddXY(x[i], y[i]);
Где вы храните данные в формате datatable? – Izzy
@Izzy Я не задал вопрос. Если вы спрашиваете, где происходит возврат od db, он обрабатывается в: dataTable = ApplTbl.GetTRAFFIC_SUMMARY (запрос, ref SQLError); Эта часть работает – user3710346