Infragistics XamDataGrid を使用してMySQL のダイナミックグリッドを作成

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

MySQL ADO.NET Provider

MySQL 互換データベースエンジンを組み込んだパワフルな.NET アプリケーションを短時間・低コストで作成して配布できます。



CData ADO.NET Provider for MySQL とInfragistics XamDataGrid を使用してダイナミックグリッドを構築。

Infragistics WPF UI コントロールを使用すると、デスクトップおよびタッチデバイス用の、最新のMicrosoft Office に着想を得たアプリを構築できます。CData ADO.NET Provider for MySQL と組み合わせると、ライブのMySQL にアクセスして動的なグリッド、グラフその他のビジュアライゼーションを構築できます。この記事では、Infragistics XamDataGrid コントロールを使用してVisual Studio でダイナミックグリッドを作成する方法について説明します。

続行するには、Infragistics WPF UI コンポーネントをインストールしてください。こちらから無償トライアルをダウンロードできます。:https://www.infragistics.com/products/wpf

WPF プロジェクトを作成する

VisualStudio を開き、新しいWPF プロジェクトを作成します。

SQL クエリをCData ADO.NET Provider に渡すためのTextBox と、クエリを実行するためのButton を追加します。

以下は、この時点でのXAML です。

< Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:CDataXamDataGridGroupingListApp"
        xmlns:igWPF="http://schemas.infragistics.com/xaml/wpf" x:Class="CDataXamDataGridGroupingListApp.MainWindow"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
  < Grid>
    < TextBox x:Name="textBox" HorizontalAlignment="Left" Height="44" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="682" Margin="10,10,0,0"/>
    < Button x:Name="button" Content="Execute" HorizontalAlignment="Left" Margin="697,10,0,0" VerticalAlignment="Top" Width="85" Height="44"/>
  < /Grid>
< /Window>

XamDataGrid の追加と構築

初期コントロールを追加した後、アプリにXamDataGrid を追加します。コンポーネントがVisual Studio に表示されます。

コンポーネントをデザイナーで配置して、TextBoxButton の下に配置し、アプリの境界に接するようにします。

XamDataGrid を配置したら、XAML を編集してXamDataGrid のDataSource 属性を「{Binding}」に設定し、FieldSettings のAllowRecordFilteringAllowSummaries を「true」に設定します。次に、Button コンポーネントのClick イベントハンドラーとして空のメソッドを追加します。以下は、この時点でのXAML です。

< Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:CDataXamDataGridGroupingListApp"
        xmlns:igWPF="http://schemas.infragistics.com/xaml/wpf" x:Class="CDataXamDataGridGroupingListApp.MainWindow"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
  < Grid>
    < TextBox x:Name="textBox" HorizontalAlignment="Left" Height="44" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="682" Margin="10,10,0,0"/>
    < Button x:Name="button" Content="Execute" HorizontalAlignment="Left" Margin="697,10,0,0" VerticalAlignment="Top" Width="85" Click="Button_Click" Height="44"/>

    < igWPF:XamDataGrid Margin="10,59,10,10" DataSource="{Binding}">
      < igWPF:XamDataGrid.FieldSettings>
        < igWPF:FieldSettings AllowSummaries="True" AllowRecordFiltering="True"/>
      < /igWPF:XamDataGrid.FieldSettings>
    < /igWPF:XamDataGrid>

  < /Grid>
< /Window>

MySQL に接続してクエリする

ダイナミックDataGrid を使用してWPG App を構築するための最後のステップとして、ライブMySQL データに接続し、クエリを実行します。まず、CData ADO.NET Provider への参照をプロジェクトに追加します。(通常、C:\Program Files\CData\CData ADO.NET Provider for MySQL\lib にあります。)

次に、プロバイダーを標準のData ライブラリとともに名前空間に追加します。

using System.Data.CData.MySQL;
using System.Data;

最後に、MySQL に接続するコードを追加し、TextBox からのテキストを使用してClick イベントハンドラーにクエリします。

Server およびPort プロパティがMySQL への接続には必須です。IntegratedSecurity をFALSE に設定した場合、User、Password も必須になります。 オプションで、Database を設定することもできます。Database は設定がない場合すべてのデータベースを使えるようになります。

パスワード方式によるSSH 接続

パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。

  • User: MySQL のユーザ
  • Password: MySQL のパスワード
  • Database: MySQL の接続先データベース
  • Server: MySQL のサーバー
  • Port: MySQL のポート
  • UserSSH: "true"
  • SSHAuthMode: "Password"
  • SSHPort: SSH のポート
  • SSHServer: SSH サーバー
  • SSHUser: SSH ユーザー
  • SSHPassword: SSH パスワード

接続文字列形式では以下のようになります。User=admin;Password=adminpassword;Database=test;Server=mysql-server;Port=3306;UseSSH=true;SSHAuthMode=Password;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;

公開鍵認証方式方式によるSSH 接続

公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。

  • User: MySQL のユーザ
  • Password: MySQL のパスワード
  • Database: MySQL の接続先データベース
  • Server: MySQL のサーバー
  • Port: MySQL のポート
  • UserSSH: "true"
  • SSHAuthMode: "Public_Key"
  • SSHClientCertType: キーストアの種類
  • SSHPort: SSH のポート
  • SSHServer: SSH サーバー
  • SSHUser: SSH ユーザー
  • SSHClientCert: 秘密鍵ファイルのパス

接続文字列形式では以下のようになります。User=admin;Password=adminpassword;Database=test;Server=mysql-server;Port=3306;UseSSH=true;SSHAuthMode=Public_Key;SSHClientCertType=PUBLIC_KEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;

private void Button_Click(object sender, RoutedEventArgs e)
{
  //connecting to MySQL
  string connString = "User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;";
  using (var conn = new MySQLConnection(connString))
  {
    //using the query from the TextBox
    var dataAdapter = new MySQLDataAdapter(textBox.Text, conn);
    var table = new DataTable();
    dataAdapter.Fill(table);
    
    //passing the DataRowCollection to the DataContext
    //  for use in the XamDataGrid
    this.DataContext = table.Rows;
  }
}

アプリケーションを実行する

アプリが構築が完了したら、XamDataGrid にMySQL データを表示する準備が整いました。「Execute」をクリックすると、アプリはMySQL に接続し、CData ADO.NET Provider を介してSQL クエリを送信します。

ライブMySQL データがグリッドに表示されます。

カラム名をヘッダーにドラッグ & ドロップし、データをグループ化します。

グループ化とフィルタを追加すると、もとになるSQL クエリがMySQL に直接送信されるため、ライブMySQL データをドリルダウンして特定の必要な情報のみを見つけることができます。

無償トライアルと詳細

この時点で、ライブMySQL データへのアクセスを持つダイナミックWPF アプリが作成されています。詳細については、CData ADO.NET プロバイダページをご覧ください。30日間の無償トライアルをダウンロードすれば、Infragistics UI コントロールを使用して構築したアプリでライブMySQL データを今すぐ試すことができます。