如何通过从数据库中获取值来绘制zedgraph [英] how to draw zedgraph by taking value from database

查看:161
本文介绍了如何通过从数据库中获取值来绘制zedgraph的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过从数据库中获取值来绘制zedgrapg。我有chekbox的datagriedview。选择5 chekbox值传递给数据库后,为Yaxis取5个colums值。

这是我的代码,我只能绘制1个图表。我希望在一个窗格中有5个不同的y轴

I want to draw zedgrapg by taking value from database. I have datagriedview with chekbox. after selecting 5 chekbox value pass to database and take value of 5 colums for Yaxis.
This is my code what m trying, I Can draw only 1 graph. I want 5 in one pane with different y axis

s = dgvTanksandCompartments.CurrentRow.Cells["TANK_ID"].Value.ToString();
           int i = Convert.ToInt32(s);
          DataSet dstankcompartment = objcls.GetTankId("spTrend_TankCompartmentVolume_DateTimeWise", i, mydate  );
           DataTable dttankcompartment = new DataTable();
           dttankcompartment = dstankcompartment.Tables[0];
           totalrow = dttankcompartment.Rows.Count;
           totalcol = dttankcompartment.Columns.Count;
           DateTime[] dt1 = new DateTime[totalrow];
           DateTime[] dt2 = new DateTime[totalrow];
           x = new double[totalrow];
           y = new double[totalrow];

           for (int j = 0; j < totalrow; j++)
           {
               dt1[j] =  Convert.ToDateTime((dttankcompartment.Rows[j].ItemArray[0]));
               x[j] = (double)(new XDate(dt1[j]));

           }
           foreach (DataRow dr in dttankcompartment.Rows)
           {
               foreach (DataColumn dc in dttankcompartment .Columns )
               {
                  if((dr [dc ] == DBNull.Value))
                  {
                       dr [dc ] = 0;

                   }
               }
           }
           for (int m = 0; m < dttankcompartment.Rows.Count; m++)
           {

               y[m] = (float)Convert.ToDouble(dttankcompartment.Rows[m].ItemArray[2]);
           }

           GraphPane myPane1 = zedGraphControl1.GraphPane;
           myPane1.Title.Text = "Tanks and Compartment";
           myPane1.XAxis.Title.Text = "Time";
           myPane1.YAxis.Title.Text = "Volume";
           myPane1.XAxis.Type = AxisType.DateAsOrdinal;
           myPane1.XAxis.Scale.Format = "dd-MM-yyyy HH:mm:ss.fff";
           myPane1.XAxis.MajorGrid.IsVisible = true;
           myPane1.XAxis.MinorGrid.IsVisible = true;
           myPane1.XAxis.Scale.MajorUnit = DateUnit.Minute;
           myPane1.XAxis.Scale.MinorUnit = DateUnit.Minute;
           myPane1.XAxis.Title.IsVisible = true;        //show the visibility of x axistitle.
           myPane1.XAxis.Scale.Min = 0;
           myPane1.XAxis.Scale.Max = 24;
           myPane1.XAxis.Scale.MajorStep = 1;
           myPane1.XAxis.MinorTic.Size = 1;
           myPane1.XAxis.Scale.FontSpec.Angle = 90;
           myPane1.XAxis.Title.FontSpec.Size = 10;
           myPane1.YAxis.Title.FontSpec.Size = 10;
           myPane1.XAxis.Scale.FontSpec.Size = 8;
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           myPane1.YAxisList.Clear();
           var y1 = myPane1.AddYAxis("Volume");
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           var y2 = myPane1.AddYAxis("Volume");
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           var y3 = myPane1.AddYAxis("Volume");
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           var y4 = myPane1.AddYAxis("Volume");
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           var y5 = myPane1.AddYAxis("Volume");
           myPane1.YAxis.Scale.FontSpec.Size = 8;
           zedGraphControl1.GraphPane.CurveList.Clear();
           zedGraphControl1.GraphPane.GraphObjList.Clear();
           LineItem myCurve1 = myPane1.AddCurve("Smooth" , x, y, System.Drawing.Color.Red, SymbolType.Circle);
           myCurve1.Symbol.Fill = new Fill(System.Drawing.Color.Green);
           myCurve1.Symbol.Size = 4;
           myCurve1.Line.Width = 2;
           myCurve1.Label.Text = "Tank_ID_"+s ;
           //myCurve1.Label.FontSpec.Size = 6;
           zedGraphControl1.ZoomButtons = MouseButtons.None;
           zedGraphControl1.ZoomStepFraction = 0;

           zedGraphControl1.AxisChange();
           zedGraphControl1.Invalidate();

推荐答案

这篇关于如何通过从数据库中获取值来绘制zedgraph的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆