各製品の資料を入手。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
データバインドによって、UI コントロールからデータに接続できます。 CData ADO.NET Provider for OData を使って、Visual Studio 上でWindows Forms およびWeb Forms とOData をデータバインドできます。この記事で、OData を、ウィザードから変更をリアルタイムで反映するチャートにデータバインドする方法を説明します。 Code Walk-through セクションではチャートはほんの10行のコードで作成します。
CData は、リアルタイムOData サービスデータへのアクセスと連携を容易にします。CData のコネクティビティを活用することで、以下のことが可能になります。
CData のソリューションを活用して、OData サービスをPower BI、MicroStrategy、Tableau などの好みのツールに定期的に連携したり、OData サービスからデータベースやデータウェアハウスにデータをレプリケートしたりすることができます。
データバインドは3つのステップから構成されます。コントロールのインスタンス作成、データソースの設定、最後にデータバインドです。
下の手続きにより、データソース構成ウィザードを使ってチャートコントロールとOData との接続を作成します。ウィザード上でデータバインドをするOData エンティティを使います。
データ接続の選択ダイアログで、「変更」をクリックして、CData OData のデータソースを選択して、接続プロパティを入力します。下は代表的な接続文字列ですです。:
URL=http://services.odata.org/V4/Northwind/Northwind.svc;UseIdUrl=True;OData Version=4.0;Data Format=ATOM;
OData に接続するには、Url を有効なOData サービスルートURI に設定する必要があります。 OData サービスにルートドキュメントがない場合、テーブルとして公開したい特定のエンティティをFeedURL に指定してください。
OData は、以下を経由する認証をサポートします。
HTTP で認証する場合は、次の表に従ってAuthScheme を設定します。
Scheme | AuthScheme | その他の設定 |
None | None | 認証を必要としない場合に使用。 |
Basic | Basic | User、Password |
NTLM | NTLM | User、Password |
Digest(サポートされている場合) | Digest | User、Password |
その他の認証方法の詳細は、ヘルプドキュメントの「接続の確立」セクションを参照してください。
データソースの追加とデータベースオブジェクトを選択したら、チャートにオブジェクトをバインドします。この例では、X軸に OrderName をY軸に Freight を設定します。
チャートはこれでOData にデータバインドされました。チャートを実行して最新のデータを表示させましょう。
OData へのデータバインドはほんの数行のコードのみが必要で、3つの簡単なステップで完了できます。
下に完全なコードを示します:
ODataConnection conn = new ODataConnection("URL=http://services.odata.org/V4/Northwind/Northwind.svc;UseIdUrl=True;OData Version=4.0;Data Format=ATOM;");
ODataCommand comm = new ODataCommand("SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId", conn);
ODataDataAdapter da = new ODataDataAdapter(comm);
DataSet dataset = new DataSet();
da.Fill(dataset);
chart1.DataSource = dataset;
chart1.Series[0].XValueMember = "OrderName";
chart1.Series[0].YValueMembers = "Freight";
// Insert code for additional chart formatting here.
chart1.DataBind();