winform chart 图表

图表传值

     private void timer1_Tick(object sender, EventArgs e)
     {
         //MessageBox.Show("1");
         // 生成一个0到40之间的随机数
         Random random = new Random();
         double newValue = random.Next(0, 41);
         //AddDataPoints1(newValue);
         //AddDataPoints2(newValue);
         button6_Click(null,null);

     }
      private void AddDataPoints1(double value)
      {
          // 清除旧的数据点
          this.chart1.Series["DataSeries"].Points.Clear();

          // 添加新的数据点
          this.chart1.Series["DataSeries"].Points.AddXY("当前", value);
      }

图表初始化

 private void InitializeChart1()
 {
     // 创建一个新的图表区并命名为 "MainChartArea"
     ChartArea chartArea = new ChartArea("MainChartArea");
     chartArea.AxisX.Title = "时间";
     chartArea.AxisY.Title = "数值"; 
     chartArea.AxisY.StripLines.Clear();
     this.chart1.ChartAreas.Add(chartArea); 
     // 添加一个数据系列,并指定其为柱状图类型
     Series series = new Series("DataSeries"); 
     series.ChartType = SeriesChartType.Column;
     series.IsVisibleInLegend = false; // 不显示图例 
     this.chart1.Series.Add(series);
     chart1.ChartAreas[0].AxisY.LineColor = Color.White;//Y轴线白色
     chart1.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.White;//刻度值颜色
     chart1.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;//隐藏刻度线
     // 设置图表的宽度(根据需求调整)
     this.chart1.Width = 100; // 设置图表宽度为 500(根据需要调整)
     this.chart1.Height = 850;
     // 设置标题
     this.chart1.Titles.Add("温度柱状图");
     // 移除所有图例
     this.chart1.Legends.Clear();
 }

winform chart控件怎么去掉y轴刻度

隐藏 chart Y轴的刻度值

chart2.ChartAreas[0].AxisY.LineColor = Color.White;//Y轴线白色
chart2.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.White;//刻度值颜色
chart2.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;//隐藏刻度线

System.InvalidOperationException:“阅读器关闭时尝试调用 MetaData 无效

阅读器关闭时尝试调用 Read 无效”了。这里需要说明的是,在数据读取完毕之后,不再需要SqlDataReader时,必须将其进行手动关闭。因为cmd.ExecuteReader(CommandBehavior.CloseConnection)虽然可以实现关闭SqlDataReader后自动关闭连接,但是SqlDataReader必须手动关闭,上面的代码中如果去掉dr.Close(),则Response.Write(dr.IsClosed.ToString()+"<br/>")输出为False,也就是说指定的 SqlDataReader 实例没有关闭。
在MSDN中也有描述:在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 服务,对 SqlConnection 无法执行任何其他操作,只能将其关闭。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。
由此看来,网上有人说不用手动关闭SqlDataReader的说法是不对的。

winform 中 Chart 画折线图

winform 中 Chart 画折线图

private void LoadTempQuxian() { // 执行查询并获取数据表 string sql1 = "SELECT * FROM [wendu]"; DataTable dt = sqlhelper.GetDataTable(sql1);

 private void LoadTempQuxian()
 {
     // 执行查询并获取数据表
     string sql1 = "SELECT * FROM [wendu]";
     DataTable dt = sqlhelper.GetDataTable(sql1);

     // 创建一个新的图表区
     ChartArea chartArea = new ChartArea("QuxianChart");
     chartArea.AxisX.Title = "时间";
     chartArea.AxisY.Title = "温度";
     chartArea.AxisY.Minimum = 0;
     chartArea.AxisY.Maximum = 40;
     chartArea.AxisY.IsMarginVisible = false;
     chartArea.AxisY.IsStartedFromZero = true;
     chartArea.AxisY.MajorTickMark.Enabled = false;
     chartArea.AxisY.LabelStyle.Enabled = false;
     chartArea.AxisY.MajorGrid.Enabled = false;
     chartArea.AxisY.MinorGrid.Enabled = false;


     // 设置图表背景颜色
     this.chart3.BackColor = System.Drawing.Color.White;  // 设置整个图表的背景颜色

     // 设置图表区(ChartArea)的背景颜色
     chartArea.BackColor = System.Drawing.Color.White;  // 设置图表区域的背景颜色

     // 让X轴精确到秒
     chartArea.AxisX.LabelStyle.Format = "yyyy-MM-dd HH:mm:ss";
     //chartArea.AxisX.IntervalType = DateTimeIntervalType.Seconds;  // 设置X轴刻度为秒
     //chartArea.AxisX.Interval =6;  // 每秒一个刻度
     //chartArea.AxisX.MajorGrid.Enabled = true; // 显示主网格

     this.chart3.ChartAreas.Clear(); // 如果需要刷新 ChartArea,可以加这一行

     this.chart3.ChartAreas.Add(chartArea);
     if (!this.chart3.Titles.Any(t => t.Text == "温度折线图"))
     {
         this.chart3.Titles.Add("温度折线图");
     }

     this.chart3.Legends.Clear();
     // 清除已有的 Series 数据
     this.chart3.Series.Clear();

     Series seriesModel1 = new Series("设备1");
     seriesModel1.ChartType = SeriesChartType.Line;
     seriesModel1.Color = System.Drawing.Color.Yellow; 
     Series seriesModel2 = new Series("设备2");
     seriesModel2.ChartType = SeriesChartType.Line;
     seriesModel2.Color = System.Drawing.Color.Green;  
     foreach (DataRow row in dt.Rows)
     {
         DateTime time = Convert.ToDateTime(row["date"]);
         var model = row["bianhao"].ToString();
         double temperature = Convert.ToDouble(row["wendu"]);
         if (model == "设备1")
         {
             seriesModel1.Points.AddXY(time, temperature); 

         }
         else if (model == "设备2")
         {
             seriesModel2.Points.AddXY(time, temperature);
         }
       
     } 
     this.chart3.Series.Add(seriesModel1);
     this.chart3.Series.Add(seriesModel2); 
     this.chart3.Invalidate();
 }

}横坐标时间精确到秒