ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →XML Data Provider の30日間無償トライアルをダウンロード
30日間の無償トライアルへCData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
データバインドによって、UI コントロールからデータに接続できます。 CData ADO.NET Provider for XML を使って、Visual Studio 上でWindows Forms およびWeb Forms とXML をデータバインドできます。この記事で、XML を、ウィザードから変更をリアルタイムで反映するチャートにデータバインドする方法を説明します。 Code Walk-through セクションではチャートはほんの10行のコードで作成します。
データバインドは3つのステップから構成されます。コントロールのインスタンス作成、データソースの設定、最後にデータバインドです。
下の手続きにより、データソース構成ウィザードを使ってチャートコントロールとXML との接続を作成します。ウィザード上でデータバインドをするXML エンティティを使います。
データ接続の選択ダイアログで、「変更」をクリックして、CData XML データソースを選択して、接続プロパティを入力します。下は代表的な接続文字列ですです。:
URI=C:/people.xml;DataModel=Relational;
データソースを認証するには、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。 データプロバイダーはXML API を双方向データベーステーブルとしてモデル化し、XML ファイルをread-only ビュー(ローカルファイル、人気のクラウドサービスに格納されたファイル、およびFTP サーバー)としてモデル化します。 HTTP Basic、Digest、NTLM、OAuth、およびFTP を含む主な認証スキームはサポートされています。認証のガイドについては、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。
URI と認証値を設定した後で、DataModel を設定することでデータの構造によりよくマッチするようデータの抽象化を調整できます。
DataModel プロパティはデータがどのようにテーブルとして抽象化されるかを制御するプロパティであり、次の基本的な設定を調整します。
リレーショナルな抽象化の設定についての詳細は、「XML データのモデリング」セクションを参照してください。次の例で使用されているサンプルデータも存在します。 このデータには、人名、その人たちが所有する車、車に施されたさまざまなメンテナンスに関する情報が含まれます。
データソースの追加とデータベースオブジェクトを選択したら、チャートにオブジェクトをバインドします。この例では、X軸に [ personal.name.first ] をY軸に [ personal.name.last ] を設定します。
チャートはこれでXML にデータバインドされました。チャートを実行して最新のデータを表示させましょう。
XML へのデータバインドはほんの数行のコードのみが必要で、3つの簡単なステップで完了できます。
下に完全なコードを示します:
XMLConnection conn = new XMLConnection("URI=C:/people.xml;DataModel=Relational;");
XMLCommand comm = new XMLCommand("SELECT [people].[personal.age] AS age, [people].[personal.gender] AS gender,
[people].[personal.name.first] AS first_name, [people].[personal.name.last] AS last_name, [vehicles].[model], FROM
[people] JOIN [vehicles] ON [people].[_id] = [vehicles].[people_id]", conn);
XMLDataAdapter da = new XMLDataAdapter(comm);
DataSet dataset = new DataSet();
da.Fill(dataset);
chart1.DataSource = dataset;
chart1.Series[0].XValueMember = "[ personal.name.first ]";
chart1.Series[0].YValueMembers = "[ personal.name.last ]";
// Insert code for additional chart formatting here.
chart1.DataBind();