通常、グラフにデータを接続するには、データを要約する必要があります。この場合は、データソースとグラフの間にレイヤーがあります。しかしながら、プロット対象のデータは、データビューまたは同様なデータソースとして表示される場合は、グラフをデータソースオブジェクトに直接連続できます。
C1Chart コントロールをデータソースに接続するには、DataSource プロパティをデータビューまたはデータテーブルに設定します。 DataSeries.X.DataField および DataSeries.Y.DataField プロパティを使用して、データソースオブジェクトの列を各データセットにマップします。 グラフとの連結について、グラフウィザードを使用します。グラフをデータソースに連結するには、以下のコードも使用できます。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
' データ連結機能はC1Chart1.0.20034.13244 |
C# コードの書き方
C# |
コードのコピー
|
---|---|
// データ連結機能はC1Chart1.0.20034.13244 // 以降のビルドから提供されています。 // グラフのデータを取得します。 string sql = "select * from products"; string conn = @"provider=… nwind.mdb;"; OleDbDataAdapter da = new OleDbDataAdapter(sql, conn); da.Fill(dt); // グラフをテーブルに連結します (各データセットはそれぞれテーブルのフィールドにマップされます)。 c1chart.DataSource = dt; // データシリーズのコレクションをクリアします。 ChartDataSeriesCollection dsc = c1chart.ChartGroups[0].ChartData.SeriesList; dsc.Clear(); // UnitPrice データセットを追加します。 ChartDataSeries ds = dsc.AddNewSeries(); // ds.AutoEnumerate = true // (Xの値を設定しない場合) ds.X.DataField = "ProductName"; ds.Y.DataField = "UnitPrice"; // UnitsInStock データセットを追加します。 ds = dsc.AddNewSeries(); ds.X.DataField = "ProductName"; ds.Y.DataField = "UnitsInStock"; // フィルタ、ソーティングなどを適用します。 dt.DefaultView.RowFilter = "CategoryID = 4"; |
上記のコードでNWind のProducts テーブルの二つの列をそれぞれのデータセットとして表示します。
連結したテーブルは、データソースにダイナミック的に接続されているので、テーブルの値の変化、フィルタの設定、ソーティング、レコードの追加・削除などがグラフに自動的に表示されます。