日期:2014-05-17  浏览次数:20417 次

小女子求教:.net中用OWC11画折线图,数据都显示正确,折线却不显示?
小女子初来,属于菜鸟级别的,今天做一个项目中,发现一个问题,就是用OWC11画折线图,从数据库里读得数据,数据都显示正确。横轴:时间,Y轴:水温。可是就是没有连起来的折线啊?急死了,盼望各位指点。不胜感激~~

主要代码如下:

 if (!IsPostBack)
  {
   
  string strSeriesName = "图例1";
   
   
   

  string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
  "SERVER=localhost;" +
  "DATABASE=siat;" +
  "UID=root;" +
  "PASSWORD=root;" +
  "OPTION=3";
  //Connect to MySQL using Connector/ODBC
  OdbcConnection MyConnection = new OdbcConnection(MyConString);
  MyConnection.Open();
  OdbcDataAdapter sda = new OdbcDataAdapter("select id ,submit_datetime ,water_level from sensor_information order by id desc limit 20", MyConnection);
   
   
  DataSet ds = new DataSet();
  sda.Fill(ds);

  //存放时间
  string[] publish_datetime = new string[20];
  //存放水温
  string[] temp = new string[20];
  //string[] id = new string[1024];
  //为数组赋值
  for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  {
  publish_datetime [i] = ds.Tables[0].Rows[i][1].ToString();

  temp[i] =ds.Tables[0].Rows[i][2].ToString();
  }
  //创建ChartSpace对象来放置图表
  ChartSpace laySpace = new ChartSpaceClass();

  //在ChartSpace对象中添加图表
  ChChart InsertChart = laySpace.Charts.Add(0);

  //指定绘制图表的类型。类型可以通过OWC.ChartChartTypeEnum枚举值得到
  InsertChart.Type = ChartChartTypeEnum.chChartTypeLine;//折线图
   

  //指定图表是否需要图例标注
  InsertChart.HasLegend = false ;


  InsertChart.HasTitle = true;//为图表添加标题
  InsertChart.Title.Caption = "水温随时间变化显示图";//标题名称

  //为x,y轴添加图示说明
  InsertChart.Axes[0].HasTitle = true;
  InsertChart.Axes[0].Title.Caption = "时间";//
  InsertChart.Axes[1].HasTitle = true;

  InsertChart.Axes[1].Title.Caption = "水位";
  //为x轴指定特定字符串,以便显示数据
  string strXdata = String.Empty;
  string strYdata = String.Empty;
   
  for(int j=0;j<20;j++)
  {
  strXdata = publish_datetime [j] + "/t";
  strYdata = temp[j] + "/t";
  //添加一个series系列
  InsertChart.SeriesCollection.Add(0);

  //给定series系列的名字
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

  //给定分类
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);

  //给定值
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);
  Microsoft .Office .Interop .Owc11.ChDataLabels dl=InsertChart.SeriesCollection[0].DataLabelsCollection.Add();