下面是我使用的代码:
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(分钟)
和第二个 显示3月15日。 3月9日也应该是200但是它在200以下结束然后在最后一个蓝色条之前有一个洞
你知道为什么会出现这样的失败吗?
3月9日的数据
są第一张图表是正确的,第二张图表是有洞的。
答案 0 :(得分:2)
'''实际上是错位的酒吧,很多应该去左边的一个或多个点..!见这里:
DataPoints必须同步'或者'对齐'这意味着每个Series
ChartType
StackedXXX
必须的<{>>每个的<值> < strong>任何其他系列。
有一个很长的post here应该解释一下..
特别注意this interesting chart function
的链接DataPoint
有几个重载来帮助对齐堆积图表。