Visual Studio でチャートコントロールと Azure Synapse をデータバインド
データバインドによって、UI コントロールからデータに接続できます。 CData ADO.NET Provider for AzureSynapse を使って、Visual Studio 上でWindows Forms およびWeb Forms とAzure Synapse をデータバインドできます。この記事で、Azure Synapse を、ウィザードから変更をリアルタイムで反映するチャートにデータバインドする方法を説明します。 Code Walk-through セクションではチャートはほんの10行のコードで作成します。
チャートへのデータバインド
データバインドは3つのステップから構成されます。コントロールのインスタンス作成、データソースの設定、最後にデータバインドです。
接続を設定してデータベースオブジェクトを選択
下の手続きにより、データソース構成ウィザードを使ってチャートコントロールとAzure Synapse との接続を作成します。ウィザード上でデータバインドをするAzure Synapse エンティティを使います。
- Windows Forms プロジェクトでは、チャートコントロールをツールボックスからフォーム上にドラグ&ドロップします。チャートプロパティのデータセクションで DataSource を選択し、メニューからプロジェクトデータソースの追加を選択します。
- 出てくるデータソース構成ウィザードでデータベース -> データセットを選択します。
- データ接続ステップで、「新しい接続」をクリックします。
データ接続の選択ダイアログで、「変更」をクリックして、CData Azure Synapse のデータソースを選択して、接続プロパティを入力します。下は代表的な接続文字列ですです。:
User=myuser;Password=mypassword;Server=localhost;Database=Northwind;
Azure Synapse への接続
Azure Synapse データベースに接続するには、認証に加えて(下記参照)、次のプロパティを設定します。
- Server:Azure を実行しているサーバー。Azure ポータルにログインして、[Azure Synapse Analytics]->[Select your database]->[Overview]->[Server name]に進むと確認できます。
- Database:[Azure Synapse Analytics]ページのAzure ポータルに表示されるデータベース名。
Azure Synapse への認証
Azure Synapse は、Entra ID(Azure AD)、Azure サービスプリンシパル、Managed Service Identity(MSI)、パスワード(デフォルト)、Azure Password を使用する認証をサポートします。
パスワードでAzure Synapse に直接認証するには、以下のプロパティを設定します。
- AuthScheme:Password
- User:認証するAzure Synapse ユーザー。
- Password:認証するAzure Synapse ユーザーのパスワード。
その他の認証方法については、ヘルプドキュメント の「はじめに」セクションを参照してください。
- 使用するデータソースオブジェクトを選択します。例は Products テーブルです。
DataBind
データソースの追加とデータベースオブジェクトを選択したら、チャートにオブジェクトをバインドします。この例では、X軸に Id をY軸に ProductName を設定します。
- チャートプロパティで、Series プロパティをクリックし、Series コレクション エディター を開きます。
- Series プロパティでX軸、Y軸に設定するカラムを選択します:XValueMember および YValueMember プロパティにメニューからカラムを選びます。
チャートはこれでAzure Synapse にデータバインドされました。チャートを実行して最新のデータを表示させましょう。
コード Walk-through
Azure Synapse へのデータバインドはほんの数行のコードのみが必要で、3つの簡単なステップで完了できます。
- Azure Synapse に接続します。
- AzureSynapseDataAdapter を作成して、クエリを作成し、結果を入れるデータセットを作成します。
- 結果セットとチャートをデータバインドします。
下に完全なコードを示します:
AzureSynapseConnection conn = new AzureSynapseConnection("User=myuser;Password=mypassword;Server=localhost;Database=Northwind;");
AzureSynapseCommand comm = new AzureSynapseCommand("SELECT Id, ProductName FROM Products WHERE ProductName = 'Konbu'", conn);
AzureSynapseDataAdapter da = new AzureSynapseDataAdapter(comm);
DataSet dataset = new DataSet();
da.Fill(dataset);
chart1.DataSource = dataset;
chart1.Series[0].XValueMember = "Id";
chart1.Series[0].YValueMembers = "ProductName";
// Insert code for additional chart formatting here.
chart1.DataBind();