首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多系列MSChart

多系列MSChart
EN

Stack Overflow用户
提问于 2013-04-06 20:43:24
回答 1查看 2.5K关注 0票数 1

我是MSChart的新手,下面的代码适用于多系列专栏。但我知道应该有一种更短的方式来显示多系列,而不是求助于创建两个数据表,或者用很少的代码来更好地显示多系列,比如使用DataBindTable或DataBindCrossTable。

有没有更短的方法来做我下面正在做的事情?顺便说一句,我想要做的是显示在给定学年有多少学生注册。

代码语言:javascript
复制
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");
EN

回答 1

Stack Overflow用户

发布于 2013-06-17 16:05:09

你会试试下面的吗?

代码语言:javascript
复制
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:

代码语言:javascript
复制
            <asp:Chart ID="chart1" runat="server" ImageStorageMode="UseImageLocation" ImageLocation="ChartPic_#SEQ(300,3)">
                <ChartAreas>
                    <asp:ChartArea Name="abc">
                    </asp:ChartArea>
                </ChartAreas>
            </asp:Chart>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15851098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档