zoukankan      html  css  js  c++  java
  • C# Chart使用总结 1 ---------关于图表数据的来源

    关于图表数据的来源:

    1、通过XValueMember YValueMembers 设置

    
    
    OleDbConnection conn = new OleDbConnection(connStr);
                OleDbCommand comm = new OleDbCommand();
    
                string sqlstr = "select * from OriginalData order by ID";
                OleDbDataAdapter myda ;
                DataSet myds= new System.Data.DataSet();
    
                
                try
                {
                    conn.Open();
                    myda = new OleDbDataAdapter(sqlstr, conn);
                    //myds = new System.Data.DataSet();
                    myda.Fill(myds, "OriginalData");
    
    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    conn.Close();
     
                }
    
                chart1.DataSource = myds.Tables["OriginalData"];
                chart1.Series[0].XValueMember = "PositionV";
                chart1.Series[0].YValueMembers = "LoadV";
                //chart1.Series[0].XValueType = ChartValueType.Date;
    
                //chart1.Series[0].Label = "#VAL";  //显示对应点的值
                chart1.Series[0].ToolTip = "#VALX : #VAL";  //鼠标在曲线图上时  显示对应点的值
                chart1.Series[0].ChartType = SeriesChartType.Line;
    

      2、用新定义的DataTable类型的dt来绑定

           DataTable dt = new System.Data.DataTable();
    
                AccessHelper  ach= new AccessHelper(fileName);
                string sqlstr = "select LoadValue ,PositionValue  from OriginalData order by ID";
                dt = ach.GetDataTableFromDB(sqlstr);
                chart1.DataSource = dt;
                
                chart1.Series[0].XValueMember = dt.Columns[0].ColumnName;
    
                chart1.Series[0].YValueMembers = dt.Columns[1].ColumnName;
    
                chart1.Series[0].ChartType = SeriesChartType.Line;
    
                ach.ClostConn();
    

      3、用类似chart1.Series[0].Points.DataBindXY(iXAxis,fTargetOT);中的DataBindXY(X,Y)来绑定数据。。其中,X是一个数组,Y也是数组,在绑定之前需要对数组中的每个元素赋值

    DataTable dt = new System.Data.DataTable();
    
                AccessHelper ach = new AccessHelper(fileName);
                string sqlstr = "select LoadV ,PositionV  from OriginalData order by ID";
                dt = ach.GetDataTableFromDB(sqlstr);
                ////chart1.DataSource = dt;
    
                ////chart1.Series[0].XValueMember = dt.Columns[0].ColumnName;
    
                ////chart1.Series[0].YValueMembers = dt.Columns[1].ColumnName;
                ////chart1.Series[0].ChartType = SeriesChartType.Line;
                int count = dt.Rows.Count;
                if (count == 0)
                {
                    return;
                }
                double[] loadValueArray = new double[count];
                double[] posArray= new double[count];
                for (int i = 0; i < count; i++)
                {
                    loadValueArray[i] = Convert.ToDouble(dt.Rows[i][0].ToString());
                    posArray[i] = Convert.ToDouble(dt.Rows[i][1].ToString());
    
                }
                chart1.Series[0].Points .DataBindXY(loadValueArray,posArray);
    

      此种方式,适合,读过来的数据需要进行处理的情况,如果不需要处理,而且列特别多,则不建议使用这种方式,用方式二比较方便。

    4、来自单独的数据,动态添加序列  通过定时器 实时调用

    chart3.Series.Clear();

    Series seriesDownTime =newSeries("DownTime");//此时就添加一个序列,chart3.Series[0]

    seriesDownTime.ChartType =SeriesChartType.Column;

    //比如要添加的内容放在了数组X和数组Y中,则添加第一个值可以如下添加:

    seriesDownTime.Points.AddXY(X[n],Y[n]);

    下一个值与之类似,直到把很少的几个点添加完成即可。。。

    此种方式适合要显示在图表上的只有少量的几个点,如果数据众多,建议按集合来添加。

  • 相关阅读:
    常用数据库种类 以及优缺点
    数据库
    Python中os与sys两模块的区别
    python操作数据库
    python——解释型语言
    面向对象的三大特性
    Android Fastboot 与 Recovery 和刷机 千山万水迷了鹿
    selenium与appium怎样联系
    Pycharm快捷键
    uiautomator python版本
  • 原文地址:https://www.cnblogs.com/rosesmall/p/9334008.html
Copyright © 2011-2022 走看看