【发布时间】:2015-08-26 22:26:40
【问题描述】:
我整天都在试图找出这个问题,但似乎真的无法理解。我有一个函数,我正在调用一个 SQL 存储过程,使用 SQL DataReader 我正在返回一个表。现在该表有 8 列,但我每行只使用 5 列。我创建了一个名为chartInfo 的对象[],并希望用第一行中的五个值填充对象并遍历行并继续遍历填充对象的行,直到我到达末尾。使用下面的代码,它适用于第一次交互,它获取值,将它们放入对象数组中,我可以在我的图表中使用它。
SqlDataReader reader = cmd.ExecuteReader();
Object[] chartInfo = new Object[5];
Object[] chartInfo1 = new Object[4];
if (reader.HasRows)
{
if (reader.Read())
{
chartInfo[0] = Convert.ToDouble(reader.GetValue(1));
chartInfo[1] = Convert.ToDouble(reader.GetValue(2));
chartInfo[2] = Convert.ToDouble(reader.GetValue(3));
chartInfo[3] = Convert.ToDouble(reader.GetValue(4));
chartInfo[4] = Convert.ToDouble(reader.GetValue(5));
//chartInfo1[0] = 500;
//chartInfo1[1] = 20000;
//chartInfo1[2] = 45125;
//chartInfo1[3] = 68954;
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
// Declare the HighCharts Object
DotNet.Highcharts.Highcharts charts = new DotNet.Highcharts.Highcharts("chart")
.InitChart(new Chart
{
// Inital Loading of the chart, default is line
DefaultSeriesType = ChartTypes.Line
})
.SetPlotOptions(new PlotOptions
{
Pie = new PlotOptionsPie
{
DataLabels = new PlotOptionsPieDataLabels
{
Enabled = true
}
}
})
.SetTitle(new Title
{
Text = "Overall Sales From Previous Years",
X = -20
})
.SetSubtitle(new Subtitle
{
Text = "Source: Sales Database",
X = -20
})
.SetXAxis(new XAxis
{
Categories = new[] { "2010", "2011", "2012", "2013", "2014" }
})
.SetSeries(new[]
{
new Series{ Name = "Carbide(total specials)", Data = new Data(chartInfo), Color = ColorTranslator.FromHtml("#FDB813") },
new Series{ Name = "Test", Data = new Data(chartInfo1) }
})
.SetCredits(new Credits
{
Enabled = false
});
ReportChart.Text = charts.ToHtmlString();
所以我的问题是我是否需要为五行创建 5 个对象,或者当行数未知时我将如何使用当前对象数组来创建填充,我是否需要提供一个 for 循环来计数,我对此很困惑。我希望我提供了足够的信息。
谢谢
【问题讨论】:
标签: asp.net arrays object highcharts sqldatareader