吃瓜日常
2018-12-24 09:08
采纳率: 100%
浏览 1.4k

Chart图表多条折线数据动态绑定怎么搞?

小弟已经实现了多条折线显示,但是无奈于代码过于繁杂,初始代码先发一下哈:

protected void Chart1_Load1(object sender, EventArgs e)
        {
            Chart1.Titles.Add("折线图报表");
            Chart1.ChartAreas[0].AxisX.Title = "日期时间";//设置X轴的标题
            Chart1.ChartAreas[0].AxisY.Title = "产品水平";//设置Y轴的标题
            Chart1.ChartAreas[0].AxisY.Interval = 10;//设置X轴间距,这样的话,就间距固定为10           
            string constr = "Data Source=10.119.8.11;Initial Catalog=SHWIP;Persist Security Info=True;User ID=shwip;Password=shwip";
            SqlConnection con = new SqlConnection(constr);
            //打开连接;
            con.Open();            

            //第一条折线
            string sql = "SELECT * FROM APiece WHERE APiece.Piece_PId=1";
            DataTable ds = new DataTable();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            sda.Fill(ds);
            Chart1.DataSource = ds;
            Series ss = new Series("产品1");   //这里 dt1 ,dt2 任意取名称,但要唯一
            ss.Points.DataBind(ds.AsEnumerable(), "Piece_Time", "Piece_Level", "");
            ss.XValueType = ChartValueType.DateTime; //设置X轴
            ss.ChartType = SeriesChartType.Spline;   //设置Y轴为折线
            Chart1.Series.Add(ss);

            //第二条数据
            string sql1 = "SELECT * FROM APiece WHERE APiece.Piece_PId=2";
            DataTable ds1 = new DataTable();
            SqlDataAdapter sda1 = new SqlDataAdapter(sql1, con);
            sda1.Fill(ds1);
            Chart1.DataSource = ds1;
            Series ss2 = new Series("产品2");
            ss2.Points.DataBind(ds1.AsEnumerable(), "Piece_Time", "Piece_Level", "");
            ss2.XValueType = ChartValueType.DateTime; //设置X轴
            ss2.ChartType = SeriesChartType.Spline;   //设置Y轴为折线
            Chart1.Series.Add(ss2);

            //第三条数据
            string sql2 = "SELECT * FROM APiece WHERE APiece.Piece_PId=3";
            DataTable ds2 = new DataTable();
            SqlDataAdapter sda2 = new SqlDataAdapter(sql2, con);
            sda2.Fill(ds2);
            Chart1.DataSource = ds2;
            Series ss3 = new Series("产品3");
            ss3.Points.DataBind(ds2.AsEnumerable(), "Piece_Time", "Piece_Level", "");
            ss3.XValueType = ChartValueType.DateTime; //设置X轴
            ss3.ChartType = SeriesChartType.Spline;   //设置Y轴为折线
            Chart1.Series.Add(ss3);
        }

#有没有大神帮忙写个遍历啥的改进一下代码,实现动态绑定,万分感谢!!!#

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qq_43200115 2019-07-16 13:41
    已采纳

    菜鸟路过 直接count(pid)再循环绑定应该就可以了 吧

    已采纳该答案
    打赏 评论
  • 你讲连接数据库的代码提取出来,网上一大堆helper类,可以找找,然后不就简单了

    打赏 评论

相关推荐 更多相似问题