private void Btn_beixian_Click(object sender, EventArgs e) { chart1.Visible = true; label3.Visible = true; try { chart1.Series.Clear(); //每次输入之后清空 Series ser = new Series(rn); // 实例化序列图对象 ser.IsValueShownAsLabel = true; //显示每个节点信息 chart1.Series.Add(ser); //向chart1中添加序列对象 #region 数据库连接操作,得到日期差值和光功率数值 DBlink db1 = new DBlink(); if (db1.DBcon()) { db1.Get_datediff(time2, time1); //输入线路名,得到对应的光功率和日期 } db1.DBclose(); DBlink db = new DBlink(); if (db.DBcon()) { db.Get_Beixian(rn, time1, time2);//输入线路名,起止时间得到对应的光功率和日期 } db.DBclose(); #endregion rqcz = date.rqcz[0] + 1; //得到选中的日期差值 比如10月20日与10月19 for (int i = 0; i < rqcz; i++) //统计日期的个数 { x[i] = (DateTime)date.dateset[i]; //日期 y[i] = date.beixian[i]; //将光功率赋给y轴 sum = sum + y[i]; } //预测部分 得到预测的光功率值 for (int i = 0; i < rqcz; i++)//rqcz=7 x[0-6] x[7] y[7]预测 { ser.Points.AddXY(x[i], y[i]); }//向xy轴添加元素} avg = sum / rqcz; chart1.Series[0].ChartType = SeriesChartType.Spline; //第一条样条图类型 //设置标题 chart1.Titles[0].Text = string.Format("{0}备线衰耗值显示", rn); chart1.Titles[0].ForeColor = Color.RoyalBlue; chart1.Titles[0].ForeColor = Color.RoyalBlue; if (avg > 3) { MessageBox.Show("备纤状态异常,可能出现拉伸、弯曲,请检查备纤!"); } else { if (avg > 10) { MessageBox.Show("光缆已经断了,请前去排除故障!"); } else { MessageBox.Show("光缆平均备纤衰耗值:" + avg); } } } catch (System.Exception ex) { } }