2016-08-09 25 views
0

積み上げられたグラフをmysqlデータベースから描画したいと思います。
"port1"、 "port2"、 "port3"、 "port4"という名前の4つの列が必要です。積み上げ縦棒グラフの列を区別する

私の問題は、DBからデータをインポートするときに、テーブルの列のタイプをチェックしてから、グラフを描画するときです。私のDBには4つのタイプのポートが含まれているので、port1、port2、port3、port4という4つのカラムがありますが、私のコードはすべてのデータを生成しますが、port1の同じカラムにあります。

どのように同じ数のデータポイントを追加できますか?

This is a part of my code

try 
{ 
    con.Open(); 

    string query1 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port1'" ;        
    string query4 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port4'"; 
    SqlCommand cmmd = new SqlCommand(query1, con);    
    SqlCommand cmmd4 = new SqlCommand(query4, con); 
    SqlDataReader dataReader = cmmd.ExecuteReader(); 
    while (dataReader.Read()) 
    { 
     chart1.Series.Add(dataReader["name"].ToString()); 
     chart1.Series[dataReader["name"].ToString()].ChartType = SeriesChartType.StackedColumn; 
     chart1.Series[dataReader["name"].ToString()]["StackedGroupName"] = "Group1";     
     chart1.Series[dataReader["name"].ToString()].Points.AddXY((dataReader["type"].ToString()), dataReader["value"].ToString()); 
    } 

    con.Close(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Error " + ex); 
} 
+1

を試してみてください。問題はどこだ? SQLを書いたり、チャートを設定したり、データを追加したりできますか?またはそれをバインドする? - スタックされたチャートの 'columns'は、異なるx値を持つことによって作成されます。あなたの文字列 'port1' ..はOKですが、それには理想的ではありません。値またはさまざまな系列を、同じ__numeric__ x値を持つようにして、互いに積み重ねます。あなたのx値は数値を持たないので、各シリーズに同じ数のデータポイントを追加する必要があります。そうでなければ、それらは一致しません。 – TaW

+0

私の問題は、DBからデータをインポートするときに、テーブルの列の型をチェックしてから、グラフを描画します。私のDBには4つのタイプのポートが含まれているため、port1、port2、port3、port4という名前の4つのカラムがありますが、すべてのデータがポート1の同じカラムに生成されます – meryam

+0

どのようにして同じ数のデータポイントを追加できますか? – meryam

答えて

0

あなたの '質問' は、むしろ不明である {

  con.Open(); 

      string query1 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port1'" ;          
      SqlCommand cmmd = new SqlCommand(query1, con);    
      SqlDataReader dataReader = cmmd.ExecuteReader(); 
      while (dataReader.Read()) 
       { 

       chart1.Series.Add(dataReader["name"].ToString()); 
       chart1.Series[dataReader["name"].ToString()].ChartType = SeriesChartType.StackedColumn; 
       chart1.Series[dataReader["name"].ToString()]["StackedGroupName"] = "Group1";     
       chart1.Series[dataReader["name"].ToString()].Points.AddXY((dataReader["type"].ToString()), dataReader["value"].ToString());      

       } 

      con.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error " + ex); 
     } 



     try 
     { 

      con.Open(); 
      string query2 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port2'"; 
      SqlCommand cmmd2 = new SqlCommand(query2, con); 
      SqlDataReader dataReader2 = cmmd2.ExecuteReader(); 
      while (dataReader2.Read()) 
      { 

       chart1.Series.Add(dataReader2["name"].ToString()); 

       chart1.Series[dataReader2["name"].ToString()].ChartType = SeriesChartType.StackedColumn; 
       chart1.Series[dataReader2["name"].ToString()]["StackedGroupName"] = "Group2"; 
       // MessageBox.Show(dataReader2["type"].ToString()); 
       chart1.DataBind(); 
       chart1.Series[dataReader2["name"].ToString()].Points.AddXY("Port_2", dataReader2["value"].ToString()); 
       chart1.Series[dataReader2["name"].ToString()]["PointWidth"] = "1"; 

      } 
      con.Close(); 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show("Error "+ ex); 
     } 
関連する問題