TrueChart for WinForms (C1Chart2D)
グラフをデータソースに直接連結する
データ連結 > グラフをデータソースに直接連結する

通常、グラフにデータを接続するには、データを要約する必要があります。この場合は、データソースとグラフの間にレイヤーがあります。しかしながら、プロット対象のデータは、データビューまたは同様なデータソースとして表示される場合は、グラフをデータソースオブジェクトに直接連続できます。

C1Chart コントロールをデータソースに接続するには、DataSource プロパティをデータビューまたはデータテーブルに設定します。 DataSeries.X.DataField および DataSeries.Y.DataField プロパティを使用して、データソースオブジェクトの列を各データセットにマップします。 グラフとの連結について、グラフウィザードを使用します。グラフをデータソースに連結するには、以下のコードも使用できます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' データ連結機能はC1Chart1.0.20034.13244
' 以降のビルドから提供されています。 ' グラフのデータを取得します。
Dim sql As String = "select * from products" Dim conn As String = "provider=… nwind.mdb" Dim da As New OleDbDataAdapter(sql, conn) da.Fill(dt) ' グラフをテーブルに連結します (各データセットはそれぞれテーブルのフィールドにマップされます)。 c1chart.DataSource = dt ' データシリーズのコレクションをクリアします。 Dim dsc As ChartDataSeriesCollection = c1chart.ChartGroups(0).ChartData.SeriesList dsc.Clear() ' UnitPrice データセットを追加します。 Dim ds As ChartDataSeries = 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"

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 テーブルの二つの列をそれぞれのデータセットとして表示します。

連結したテーブルは、データソースにダイナミック的に接続されているので、テーブルの値の変化、フィルタの設定、ソーティング、レコードの追加・削除などがグラフに自動的に表示されます。

関連トピック