我正在关注this post,以构建bar chart
并在我的网页上展示。以下是我为完成它所做的代码:
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from ForChart";
cmd.CommandType = CommandType.Text;
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;
DataSet myDataSet = new DataSet();
adp.Fill(myDataSet, "Query");
foreach (DataRow row in myDataSet.Tables["Query"].Rows)
{
string seriesName = row["SalesRep"].ToString();
Chart1.Series.Add(seriesName);
Chart1.Series[seriesName].ChartType = SeriesChartType.Line;
Chart1.Series[seriesName].BorderWidth = 2;
for (int colIndex = 1; colIndex < myDataSet.Tables["Query"].Columns.Count; colIndex++)
{
string columnName = myDataSet.Tables["Query"].Columns[colIndex].ColumnName;
string YVal = Convert.ToString(row[columnName]);
Chart1.Series[seriesName].Points.AddXY(columnName, YVal);
}
}
GridView1.DataSource = myDataSet;
GridView1.DataBind();
cmd.Connection.Close();
我的表格中有以下数据。请检查快照
但是当我运行代码时,我收到以下错误。请帮我解决问题:
'SeriesCollection'中已存在名为'John'的图表元素。
我无法遍历记录,这就是我收到此错误的原因,但我不知道如何遍历所有记录。
非常感谢编码帮助。感谢。
答案 0 :(得分:0)
我假设Chart1.Series需要唯一的名称,因此当您尝试多次输入相同的名称时,此调用将失败:
Chart1.Series.Add(seriesName);
呃,MSDN上的整个例子都充满了不好的做法:
Look at this example寻求可能的解决方案。