我是MSChart的新手,下面的代码适用于多系列专栏。但我知道应该有一种更短的方式来显示多系列,而不是求助于创建两个数据表,或者用很少的代码来更好地显示多系列,比如使用DataBindTable或DataBindCrossTable。
有没有更短的方法来做我下面正在做的事情?顺便说一句,我想要做的是显示在给定学年有多少学生注册。
String sql, sql2;
sql = @"SELECT Major, SchoolYear, COUNT(*) as TotalStudents
FROM StudentList
WHERE Major='AFT'
GROUP BY Major, Schoolyear";
sql2 = @"SELECT Major, SchoolYear, COUNT(*) as TotalStudents
FROM StudentList
WHERE Major='AFT'
GROUP BY Major, Schoolyear";
SqlConnection con = new SqlConnection(connString);
con.Open();
SqlDataAdapter dta = new SqlDataAdapter(sql, con);
DataSet dst = new DataSet();
DataTable dt;
dta.Fill(dst);
dt = dst.Tables[0];
chart1.Width = 900;
chart1.ChartAreas[0].AxisX.Title = "School Year";
chart1.ChartAreas[0].AxisY.Title = "Enrollment";
chart1.Series[0].Name = dt.Rows[0][0].ToString();
chart1.Series[0].XValueMember = "SchoolYear";
chart1.Series[0].YValueMembers = "TotalStudents";
chart1.Series[0].Points.DataBindXY(dt.CreateDataReader(),"SchoolYear", dt.CreateDataReader(), "TotalStudents");
dta = new SqlDataAdapter(sql2, con);
dst = new DataSet();
dta.Fill(dst);
dt = dst.Tables[0];
chart1.Series.Add(dt.Rows[0][0].ToString());
chart1.Series[1].XValueMember = "SchoolYear";
chart1.Series[1].YValueMembers = "TotalStudents";
chart1.Series[1].Points.DataBindXY(dt.CreateDataReader(), "SchoolYear", dt.CreateDataReader(), "TotalStudents");发布于 2013-06-17 16:05:09
你会试试下面的吗?
String sql, sql2;
sql = @"SELECT Major, SchoolYear, COUNT(*) as TotalStudents
FROM StudentList
WHERE Major='AFT'
GROUP BY Major, Schoolyear";
SqlConnection con = new SqlConnection(connString);
con.Open();
SqlDataAdapter dta = new SqlDataAdapter(sql, con);
DataSet dst = new DataSet();
DataTable dt;
dta.Fill(dst);
dt = dst.Tables[0];
chart1.DataSource = dt;
chart1.Width = 900;
chart1.ChartAreas["abc"].AxisX.Title = "School Year";
chart1.ChartAreas["abc"].AxisY.Title = "Enrollment";
chart1.Series["xyz"].Name = dt.Rows[0][0].ToString();
chart1.Series["xyz"].XValueMember = "SchoolYear";
chart1.Series["xyz"].YValueMembers = "TotalStudents";
chart1.DataBind();HTML:
<asp:Chart ID="chart1" runat="server" ImageStorageMode="UseImageLocation" ImageLocation="ChartPic_#SEQ(300,3)">
<ChartAreas>
<asp:ChartArea Name="abc">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>https://stackoverflow.com/questions/15851098
复制相似问题