2015-02-26 2 views
0

Я пытаюсь отобразить простую диаграмму в моем приложении 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]); 
+0

Где вы храните данные в формате datatable? – Izzy

+0

@Izzy Я не задал вопрос. Если вы спрашиваете, где происходит возврат od db, он обрабатывается в: dataTable = ApplTbl.GetTRAFFIC_SUMMARY (запрос, ref SQLError); Эта часть работает – user3710346

ответ

0

Ну, проблема была в рендеринге страницы, этот код в порядке.

Смежные вопросы