chart1.DataBindCrossTable返回不可预测的结果

时间:2016-05-11 14:49:00

标签: c# charts

下面是我使用的代码:

        DataTable dt = new DataTable();
        string connstring = "%my connection string%";
        string query = @"%my query%";
        OracleConnection oc = new OracleConnection(connstring);
        oc.Open();

        OracleCommand ocom = new OracleCommand(query, oc);
        OracleParameter p1 = new OracleParameter();
        p1.Value = dtp1.Value.Date;
        ocom.Parameters.Add(p1);
        OracleParameter p2 = new OracleParameter();
        p2.Value = dtp2.Value.Date;
        ocom.Parameters.Add(p2);

        try
        {
            dt.Load(ocom.ExecuteReader());
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        //*********
        chart1.Series.Clear();
        this.chart1.DataBindCrossTable(dt.Rows, "PROGRAM_NAME", "STARTDATE", "MINUTES", "");
        foreach (Series ser in chart1.Series)
        {
            ser.ChartType = SeriesChartType.StackedColumn;
        }

它生成相当不错的图表,我通常对结果感到满意,直到......这是一段很短的时间。当我选择更宽的时间间隔时,我的列有空洞。以下两个截图: 第一个只显示3月的5天。 3月9日列值达到200(分钟) 7-11 of march enter image description here

和第二个 显示3月15日。 3月9日也应该是200但是它在200以下结束然后在最后一个蓝色条之前有一个洞 7-11 of march enter image description here

你知道为什么会出现这样的失败吗?

3月9日的数据

enter image description here

są第一张图表是正确的,第二张图表是有洞的。

1 个答案:

答案 0 :(得分:2)

'''实际上是错位的酒吧,很多应该去左边的一个或多个点..!见这里:

enter image description here

DataPoints必须同步&#39;或者&#39;对齐&#39;这意味着每个Series ChartType StackedXXX 必须的<{>>每个的<值> < strong>任何其他系列。

有一个很长的post here应该解释一下..

特别注意this interesting chart function

的链接
DataPoint

有几个重载来帮助对齐堆积图表。