2016-05-11 6 views
0

を返すchart1.DataBindCrossTable私が使用するコードです:はunpredictible結果に以下の

 DataTable dt = new DataTable(); 
     string connstring = "%my connection string%"; 
     string query = @"%my query%"; 
     OracleConnection oc = new OracleConnection(connstring); 
     oc.Open(); 

     OracleCommand ocom = new OracleCommand(query, oc); 
     OracleParameter p1 = new OracleParameter(); 
     p1.Value = dtp1.Value.Date; 
     ocom.Parameters.Add(p1); 
     OracleParameter p2 = new OracleParameter(); 
     p2.Value = dtp2.Value.Date; 
     ocom.Parameters.Add(p2); 

     try 
     { 
      dt.Load(ocom.ExecuteReader()); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
     //********* 
     chart1.Series.Clear(); 
     this.chart1.DataBindCrossTable(dt.Rows, "PROGRAM_NAME", "STARTDATE", "MINUTES", ""); 
     foreach (Series ser in chart1.Series) 
     { 
      ser.ChartType = SeriesChartType.StackedColumn; 
     } 

それはかなり良いチャートを生成し、それは時間の短い期間です...まで、私は一般的に満足してフォームの結果です。より広い時間間隔を選択すると、私の列には空の穴があります。以下の2つのスクリーンショット: 最初のものは3月の5日間しか表示されません。マーチコラムリーチ200(分)の値 7-11 of marchenter image description here

と第二 の9日、3月15日を示しています。月の9日も、200でなければなりませんが、それはわずか200未満に完了し、あなたがこのような障害が現れる理由を任意のアイデアを持っていますか、最後の青いバー 7-11 of marchenter image description here

前に穴がありますか?穴が故障していると最初チャートSA

enter image description here

月の9から

データは、第1正しいです。

+0

あなたの 'DataTable'とあなたの'凡例 'にデータを表示してください。 – jsanalytics

+0

いくつかのシリーズでは、いくつかのx値に欠けている点があります。あなたはそれらを同期する必要があります! – TaW

+0

@jstreet 3月9日の伝説とデータが追加されました。 – user3863616

答えて

1

「穴」は実際には間違った棒になっていて、多くは左に1つ以上の点に移動する必要があります。ここを参照してください:

enter image description here

データポイントは、 'synch'ed' または '整列' でなければなりません。これは、各Series必見ChartTypeStackedXXXのはどの他のシリーズのX-の各値DataPointがあることを意味します。

長いpost here

注意が特にthis interesting chart function

DataManipulator.InsertEmptyPoints 

へのリンクが積み上げグラフを揃える手助けするために、いくつかのオーバーロードがあります...それをすべてを説明しなければならないことがあります。

関連する問題