CData ADO.NET Provider と DevExpress Data Grid の使用
CData ADO.NET Provider は、さまざまなサードパーティコンポーネントやツールで使用できる標準ベースのライブラリです。DevExpress コントロールを CData の各種プロバイダーと組み合わせることで、多様なデータソースのデータを視覚化できます。
この記事では、プロバイダーを使用して DevExpress の Windows Forms および Web コントロールにデータバインドする方法を紹介します。標準的な ADO.NET のデータバインド手順に従うことで、UI コントロールからライブデータへの双方向アクセスが可能になります。ここでは、現在のデータを表示する DevExpress チャートへのデータバインド方法を解説します。
Windows Forms コントロール
以下のコードは、DevExpress チャート(ChartControl1)に Salesforce データを設定する方法を示しています。SalesforceDataAdapter は ChartControl1 の Series プロパティにバインドされ、WebChartControl1 の Diagram プロパティで x 軸と y 軸をカラム名として定義します。
using (SalesforceConnection connection = new SalesforceConnection(
"user=myuser;password=mypassword;SecurityToken=mysecuritytoken")) {
SalesforceDataAdapter dataAdapter = new SalesforceDataAdapter(
"Select A.BillingState, SUM(O.Amount) AS SUM_O_Amount From Opportunity O, Account A Group By A.BillingState", connection);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
chartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "SUM_O_Amount" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "BillingState";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}

Web コントロール
以下のコードは、DevExpress Web コントロールに Salesforce データを設定する方法を示しています。SalesforceDataAdapter はチャート(WebChartControl1)の Series プロパティにバインドされ、WebChartControl1 の Diagram プロパティで x 軸と y 軸をカラム名として定義します。
using (SalesforceConnection connection = new SalesforceConnection(
"user=myuser;password=mypassword;SecurityToken=mysecuritytoken")) {
SalesforceDataAdapter dataAdapter = new SalesforceDataAdapter(
"Select A.BillingState, SUM(O.Amount) AS SUM_O_Amount From Opportunity O, Account A Group By A.BillingState", connection);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
chartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "SUM_O_Amount" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "BillingState";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
