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 以上のすべてのデータソースに適用できます。
前提条件
開発環境のセットアップ
- Visual Studio のインストール: Visual Studio をお持ちでない場合は、Visual Studio の Web サイトからダウンロードしてインストールしてください。
- .NET デスクトップ開発ワークロードのインストール: .NET デスクトップ開発ワークロードがインストールされていることを確認してください。Visual Studio インストーラーから追加できます。
CData ADO.NET Provider for CSV の追加
- CData ADO.NET Provider for CSV の無料コミュニティライセンスをリクエストしてください。
- Provider のダウンロード: CData Web サイトから CData ADO.NET Provider for CSV をダウンロードするか、Visual Studio の NuGet パッケージマネージャーを使用してください。
- Provider のインストール: 手順に従ってインストールし、コミュニティライセンスを追加してください。
- サンプル CSV ファイルのダウンロード: テスト用のサンプル CSV ファイルをダウンロードしてください。
新しい WinForms プロジェクトの作成
- Visual Studio を開き、Create a new project をクリックします。
- Windows Forms App (.NET Framework) を選択し、Next をクリックします。
- プロジェクト名を入力し、保存場所を指定して、「Create new solution」を選択し、Create をクリックします。
これでプロジェクトの準備が整いました。
CSV への接続設定
- 参照の追加: Visual Studio プロジェクトで、右側のソリューションエクスプローラーパネルにあるReferencesを右クリックし、Add Referenceを選択します。
- .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」を追加します。
- 追加が完了すると、References の下に「System.Data.CData.CSV.dll」ファイルが表示されます。
Connect フォームの作成とデザイン
- Form1 の名前変更: ソリューションエクスプローラーで Form1.cs を右クリックし、Rename を選択して、ConnectForm.cs に変更します。
- Form Designer を開く: ConnectForm.cs をダブルクリックして、フォームデザイナーを開きます(まだ開いていない場合)。
- コントロールの追加: Toolbox(Ctrl+Alt+X または View > Toolbox で開きます)から TextBox と Button をフォームにドラッグ&ドロップします。
- TextBox を選択し、Properties タブで Name プロパティを "txtFilePath" に設定します。
- 同様に、Button を選択し、Name プロパティを "btnConnect" に、Text プロパティを "Connect" に設定します。
- TextBox を選択し、Properties タブで Name プロパティを "txtFilePath" に設定します。
作成が完了すると、Connect フォームは次のようになります。
注意: 上のスクリーンショットでは、分かりやすくするために Toolbox から Label を TextBox の下に追加し、Text プロパティを更新しています。
ConnectForm.cs へのコードの追加
- ConnectForm.cs を開く: ソリューションエクスプローラーで ConnectForm.cs を右クリックし、View Code を選択します。
- コードの変更:
最初のコードスニペットは "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 フォームの作成とデザイン
- 新しいフォームの追加: ソリューションエクスプローラーでプロジェクト(WindowsFormsApp)を右クリックし、Add > Form (Windows Forms) を選択します。新しいフォームが Form1.cs として追加されます。これを "DataExplorerForm.cs" に名前変更します。
- Form Designer を開く: DataExplorerForm.cs をダブルクリックして、フォームデザイナーを開きます(まだ開いていない場合)。
- コントロールの追加: ComboBox、Button、DataGridView をフォームにドラッグ&ドロップします。
- ComboBox を選択し、Name プロパティを "cmbTables" に設定します。
- Button を選択し、Name プロパティを "btnLoadData" に、Text プロパティを "Load Data" に設定します。
- DataGridView を選択し、Name プロパティを "dataGridView" に、Dock プロパティをドロップダウンから "Bottom" に設定します。
- ComboBox を選択し、Name プロパティを "cmbTables" に設定します。
DataExplorerForm.cs へのコードの追加
- DataExplorerForm.cs を開く: ソリューションエクスプローラーで DataExplorerForm.cs を右クリックし、View Code を選択します。
- コードの変更: 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" の座標を変更して、フォントサイズ、レイアウト、全体的な外観を調整できます。
アプリケーションの実行
- ソリューションのビルド: Build > Build Solution に移動します。
- アプリケーションの実行: Debug > Start Debugging に移動します。
- CSV への接続: テキストボックスに CSV ファイルが含まれるフォルダパス(例: "D:\TestFolder")を入力し、Connect をクリックします。Data Explorer ウィンドウが表示されます。
- データの読み込み: Data Explorer ウィンドウで、コンボボックスのドロップダウンから任意の CSV ファイル(例: 図のように "Opportunity.csv")を選択し、Load Data をクリックします。
- CSV テーブルの内容がデータグリッドボックスに表示されます。
データ開発者向けの無料コミュニティライセンス
CData ADO.NET Provider は、従来のデータベースに加えて、SaaS、NoSQL、ビッグデータシステムなど 270 を超えるデータソースへの一貫した SQL ベースの接続を提供することで、ADO.NET の機能をさらに強化します。DataReader と DataAdapter による効率的なクエリ、データの変更、データ処理、バッチ処理、トランザクション管理、接続プーリング、ストアドプロシージャの呼び出しなど、高度な機能を提供します。
CData ADO.NET コミュニティライセンスでは、個人の .NET プロジェクトでデータにアクセスするための無料ライブラリを永続的に利用できます。すべて使い慣れた SQL を通じて利用可能です。ライセンスをリクエストして、今すぐデータアプリの構築を始めましょう!