ADO.NET 開発者ガイド - はじめに

CData ADO.NET Provider は、.NET アプリケーションから 270 を超えるクラウドおよびオンプレミスのデータソースに接続できる強力なツールです。これらのデータソースをデータベースのように扱えるため、データ統合がシンプルになり、SaaS、NoSQL、ビッグデータなどとシームレスに連携できます。

適切なツールがあれば、WinForms アプリケーションで ADO.NET を使い始めるのは簡単で効率的です。このガイドでは、CData ADO.NET Provider for CSV を使用して基本的な Windows Forms(WinForms)アプリケーションを構築する手順をステップバイステップで説明します。このアプリはデータエクスプローラーのように動作し、CSV ファイルに接続してテーブルのメタデータを取得し、簡単にデータをクエリできます。

なお、このガイドでは C# プログラミング言語を使用してアプリケーションを構築しています。

アプリケーションは、以下の2つのフォームで構成されています。

  • Connect フォーム – 最初に表示される画面です。ここで CSV ファイルのパスを入力し、接続を確立します。
  • Data Explorer – 接続が完了すると、ドロップダウンからテーブルを選択でき(メタデータ呼び出しで取得)、データが DataGridView に表示されます。

このガイドでは、ADO.NET 接続の設定方法、メタデータの取得方法、クエリしたデータを WinForms UI に表示する方法を学べます。それでは、始めていきましょう!

このガイドでは CSV ファイルへの接続を例にしていますが、同じ方法は CData ADO.NET Provider がサポートする 270 以上のすべてのデータソースに適用できます。

前提条件

  • 開発環境のセットアップ

    1. Visual Studio のインストール: Visual Studio をお持ちでない場合は、Visual Studio の Web サイトからダウンロードしてインストールしてください。
    2. .NET デスクトップ開発ワークロードのインストール: .NET デスクトップ開発ワークロードがインストールされていることを確認してください。Visual Studio インストーラーから追加できます。
  • CData ADO.NET Provider for CSV の追加

    1. CData ADO.NET Provider for CSV の無料コミュニティライセンスをリクエストしてください。
    2. Provider のダウンロード: CData Web サイトから CData ADO.NET Provider for CSV をダウンロードするか、Visual Studio の NuGet パッケージマネージャーを使用してください。
    3. Provider のインストール: 手順に従ってインストールし、コミュニティライセンスを追加してください。
    4. サンプル CSV ファイルのダウンロード: テスト用のサンプル CSV ファイルをダウンロードしてください。

新しい WinForms プロジェクトの作成

  1. Visual Studio を開き、Create a new project をクリックします。
  2. Windows Forms App (.NET Framework) を選択し、Next をクリックします。
  3. プロジェクト名を入力し、保存場所を指定して、「Create new solution」を選択し、Create をクリックします。

これでプロジェクトの準備が整いました。

CSV への接続設定

  1. 参照の追加: Visual Studio プロジェクトで、右側のソリューションエクスプローラーパネルにあるReferencesを右クリックし、Add Referenceを選択します。
  2. .dll ファイルの参照: Reference Manager ウィンドウで Browse をクリックし、CData ADO.NET Provider for CSV のインストールディレクトリに移動して、必要な .dll ファイルを追加します。この例では、インストールディレクトリ「C:\Program Files\CData\CData ADO.NET Provider for CSV 20xx\lib」から「System.Data.CData.CSV.dll」を追加します。
  3. 追加が完了すると、References の下に「System.Data.CData.CSV.dll」ファイルが表示されます。

Connect フォームの作成とデザイン

  1. Form1 の名前変更: ソリューションエクスプローラーForm1.cs を右クリックし、Rename を選択して、ConnectForm.cs に変更します。
  2. Form Designer を開く: ConnectForm.cs をダブルクリックして、フォームデザイナーを開きます(まだ開いていない場合)。
  3. コントロールの追加: ToolboxCtrl+Alt+X または View > Toolbox で開きます)から TextBoxButton をフォームにドラッグ&ドロップします。
    • TextBox を選択し、Properties タブで Name プロパティを "txtFilePath" に設定します。
    • 同様に、Button を選択し、Name プロパティを "btnConnect" に、Text プロパティを "Connect" に設定します。

作成が完了すると、Connect フォームは次のようになります。

注意: 上のスクリーンショットでは、分かりやすくするために Toolbox から LabelTextBox の下に追加し、Text プロパティを更新しています。

ConnectForm.cs へのコードの追加

  1. ConnectForm.cs を開く: ソリューションエクスプローラーConnectForm.cs を右クリックし、View Code を選択します。
  2. コードの変更:

    最初のコードスニペットは "ConnectForm" クラスのコンストラクタです。"this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);" を使用して、btnConnect ボタンのクリックイベントを btnConnect_Click イベントハンドラーに動的に関連付けます。これにより、ボタンがクリックされるたびに btnConnect_Click メソッドが実行されます。

    また、以下のコードを使用して、ConnectForm のテキストを "Connect" に更新し、フォームの目的に合わせます。

    public ConnectForm() { InitializeComponent(); // btnConnect のクリックイベントをここで購読 this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click); this.Text = "Connect"; } 次に、イベントハンドラー "btnConnect_Click" を以下のコードで定義します。 private void btnConnect_Click(object sender, EventArgs e) { string filePath = txtFilePath.Text; string connectionString = $"URI={filePath}"; DataExplorerForm dataExplorerForm = new DataExplorerForm(connectionString); dataExplorerForm.Show(); this.Hide(); }

このコードは新しい "DataExplorerForm" を初期化して開き、接続文字列を渡します。Connect をクリックすると、フォームはこの接続文字列を使用して、選択した CSV ファイルのデータを Data Explorer に読み込んで表示します。Data Explorer は次のセクションで定義します。

また、アプリケーションの見た目を良くするために、ConnectForm.Designer.cs の "System.Drawing.Point" と "System.Drawing.Size" の座標を変更して、フォントサイズ、レイアウト、全体的な外観を調整することもできます。

Data Explorer フォームの作成とデザイン

  1. 新しいフォームの追加: ソリューションエクスプローラーでプロジェクト(WindowsFormsApp)を右クリックし、Add > Form (Windows Forms) を選択します。新しいフォームが Form1.cs として追加されます。これを "DataExplorerForm.cs" に名前変更します。
  2. Form Designer を開く: DataExplorerForm.cs をダブルクリックして、フォームデザイナーを開きます(まだ開いていない場合)。
  3. コントロールの追加: ComboBoxButtonDataGridView をフォームにドラッグ&ドロップします。
    • ComboBox を選択し、Name プロパティを "cmbTables" に設定します。
    • Button を選択し、Name プロパティを "btnLoadData" に、Text プロパティを "Load Data" に設定します。
    • DataGridView を選択し、Name プロパティを "dataGridView" に、Dock プロパティをドロップダウンから "Bottom" に設定します。

DataExplorerForm.cs へのコードの追加

  1. DataExplorerForm.cs を開く: ソリューションエクスプローラーDataExplorerForm.cs を右クリックし、View Code を選択します。
  2. コードの変更: CSV ファイルに接続するために "System.Data.CData.CSV" 名前空間を追加して参照してください。また、指定されたイベントハンドラーが追加されていることを確認してください。 using System.Data.CData.CSV; // CSV ファイルに接続するための名前空間を参照 ...

    コンストラクタ "DataExplorerForm" は、提供された connectionString(CSV ファイルパス)をプライベート変数 "_connectionString" に格納します。残りのコードスニペットについては、以下のコメントで説明しています。

    private string _connectionString; public DataExplorerForm(string connectionString) { InitializeComponent(); _connectionString = connectionString; // 提供された connectionString(CSV ファイルパス)をプライベート変数 "_connectionString" に格納 // イベントをここで追加 this.cmbTables.DropDownStyle = ComboBoxStyle.DropDownList; // テーブル選択ドロップダウン(cmbTables)を DropDownList モードに設定。ユーザーは定義済みのテーブル名からのみ選択でき、カスタム値を入力できません。 this.btnLoadData.Click += new System.EventHandler(this.btnLoadData_Click); // btnLoadData ボタンをクリックイベントハンドラー(btnLoadData_Click)にリンク。ユーザーが Load Data をクリックすると、イベントハンドラーが実行され、選択したテーブルからデータが読み込まれます。 this.Load += new System.EventHandler(this.DataExplorerForm_Load); // フォームの Load イベントを DataExplorerForm_Load に関連付け。フォームが開かれるときにフォームを初期化してデータを設定します。 this.FormClosed += new FormClosedEventHandler(this.DataExplorerForm_FormClosed); // FormClosed イベントを DataExplorerForm_FormClosed に関連付け。フォームが閉じられるときに、リソースが適切に解放され、クリーンアップタスク(データベース接続のクローズなど)が実行されます。 this.Text = "Data Explorer"; // フォームのタイトルを "Data Explorer" に設定 }

    "DataExplorerForm_Load" フォームロードイベントから手動で呼び出すカスタムメソッドを作成します。LoadTableNames() はドロップダウンにテーブル名(ディレクトリ内の CSV ファイル)を設定します。

    private void LoadTableNames() { try { using (CSVConnection connection = new CSVConnection(_connectionString)) { connection.Open(); DataTable schemaTable = connection.GetSchema("Tables"); cmbTables.DataSource = schemaTable; cmbTables.DisplayMember = "TABLE_NAME"; } } catch (Exception ex) { MessageBox.Show($"Error loading table names: {ex.Message}"); } }

    ユーザーが Load Data ボタンをクリックしたときにトリガーされ、選択したテーブルからデータを読み込むボタンクリックイベント "btnLoadData_Click" を追加します。

    private void btnLoadData_Click(object sender, EventArgs e) { try { string tableName = cmbTables.Text; using (CSVConnection connection = new CSVConnection(_connectionString)) { CSVCommand command = new CSVCommand($"SELECT * FROM [{tableName}]", connection); CSVDataAdapter adapter = new CSVDataAdapter(command); DataTable table = new DataTable(); adapter.Fill(table); dataGridView.DataSource = table; } } catch (Exception ex) { MessageBox.Show($"Error loading data: {ex.Message}"); } }

    フォームを初期化してテーブル名を読み込むために、先ほど定義したカスタムメソッド LoadTableNames() を呼び出すフォームロードイベント "DataExplorerForm_Load" を追加します。

    private void DataExplorerForm_Load(object sender, EventArgs e) { LoadTableNames(); }

    アプリケーションを終了するためのフォームクローズイベント "DataExplorerForm_FormClosed" を追加します。

    private void DataExplorerForm_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); }

前のセクションで説明したように、DataExplorerForm.Designer.cs の "System.Drawing.Point" と "System.Drawing.Size" の座標を変更して、フォントサイズ、レイアウト、全体的な外観を調整できます。

アプリケーションの実行

  1. ソリューションのビルド: Build > Build Solution に移動します。
  2. アプリケーションの実行: Debug > Start Debugging に移動します。
  3. CSV への接続: テキストボックスに CSV ファイルが含まれるフォルダパス(例: "D:\TestFolder")を入力し、Connect をクリックします。Data Explorer ウィンドウが表示されます。
  4. データの読み込み: Data Explorer ウィンドウで、コンボボックスのドロップダウンから任意の CSV ファイル(例: 図のように "Opportunity.csv")を選択し、Load Data をクリックします。
  5. CSV テーブルの内容がデータグリッドボックスに表示されます。

データ開発者向けの無料コミュニティライセンス

CData ADO.NET Provider は、従来のデータベースに加えて、SaaS、NoSQL、ビッグデータシステムなど 270 を超えるデータソースへの一貫した SQL ベースの接続を提供することで、ADO.NET の機能をさらに強化します。DataReader と DataAdapter による効率的なクエリ、データの変更、データ処理、バッチ処理、トランザクション管理、接続プーリング、ストアドプロシージャの呼び出しなど、高度な機能を提供します。

CData ADO.NET コミュニティライセンスでは、個人の .NET プロジェクトでデータにアクセスするための無料ライブラリを永続的に利用できます。すべて使い慣れた SQL を通じて利用可能です。ライセンスをリクエストして、今すぐデータアプリの構築を始めましょう!