关于C#chart图表实现多条折线动态绑定数据的问题

吃瓜日常 2019-03-22 03:40:58
目前我已经实现了多条折线绑定数据并显示,但不是动态绑定,而是每一条数据都要进行一次绑定,个人觉得在解决实际问题时,这样的解决方法过于笨重且缺乏扩展性,我希望能够对代码进行优化,实现写一遍代码,无论数据库里增加多少条数据都能自动进行绑定,但是本人是萌新程序猿,水平不够,我把我写的代码贴上来,希望大家能够集思广益,帮忙答疑解惑,LZ将不胜感激!!!

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=;Initial Catalog=;Persist Security Info=True;User ID=;Password=";
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);
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);
...全文
443 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30977447 2019-03-25
  • 打赏
  • 举报
回复
for(var i=1;i<=3;i++){ //第一条数据 string sql = "SELECT * FROM APiece WHERE APiece.Piece_PId="+i; DataTable ds = new DataTable(); SqlDataAdapter sda = new SqlDataAdapter(sql, con); sda.Fill(ds); Series ss = new Series("产品"+i); //这里 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); }

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧