次の方法で共有


ADO.NET を使用してデータを検索する .NET Framework Windows フォームを作成する

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。

一般的なアプリケーション シナリオは、選択したデータをフォームに表示することです。 たとえば、特定の顧客の注文や特定の注文の詳細を表示することができます。 このシナリオでは、ユーザーがフォームに情報を入力した後、ユーザーの入力をパラメーターとしてクエリを実行します。つまり、パラメーター化されたクエリに基づいてデータが選択されます。 クエリは、ユーザーが入力した条件を満たすデータのみを返します。 このチュートリアルでは、特定の都市の顧客を返すクエリを作成し、ユーザーが市区町村の名前を入力してボタンを押してクエリを実行できるようにユーザー インターフェイスを変更する方法を示します。

パラメーター化されたクエリを使用すると、データベースが最適な作業を実行し、レコードをすばやくフィルター処理できるため、アプリケーションの効率を高めるのに役立ちます。 これに対し、データベース テーブル全体を要求し、ネットワーク経由で転送した後、アプリケーション ロジックを使用して目的のレコードを検索すると、アプリケーションが低速で非効率的になる可能性があります。

[ 検索条件ビルダー ] ダイアログ ボックスを使用して、パラメーター化されたクエリを任意の TableAdapter (およびパラメーター値を受け入れてクエリを実行するためのコントロール) に追加できます。 [データ] メニュー (または任意の TableAdapter スマート タグ) で [クエリの追加] コマンドを選択して、ダイアログ ボックスを開きます。

このチュートリアルで説明するタスクは次のとおりです。

  • データ ソース構成ウィザードを使用したアプリケーションでの データ ソース の作成と構成。

  • [データ ソース] ウィンドウで項目のドロップの種類を設定します。

  • [データ ソース] ウィンドウからフォームに項目をドラッグして 、データ を表示するコントロールを作成します。

  • フォームにデータを表示するコントロールを追加します。

  • [ 検索条件ビルダー ] ダイアログ ボックスの完了。

  • フォームにパラメーターを入力し、パラメーター化されたクエリを実行する。

この記事の手順は、.NET Framework Windows フォーム プロジェクトにのみ適用され、.NET Core Windows フォーム プロジェクトには適用されません。

[前提条件]

データ ストレージと処理ワークロードがインストールされている必要があります。 Visual Studio の変更に関するページを参照してください。

このチュートリアルでは、SQL Server Express LocalDB と Northwind サンプル データベースを使用します。

  1. SQL Server Express LocalDB がない場合は、 SQL Server Express のダウンロード ページまたは Visual Studio インストーラーからインストールします。 Visual Studio インストーラーでは、データ ストレージと処理ワークロードの一部として、または個々のコンポーネントとして SQL Server Express LocalDB をインストールできます。

  2. 次の手順に従って Northwind サンプル データベースをインストールします。

    1. Visual Studio で、 SQL Server オブジェクト エクスプローラー ウィンドウを開きます。 (SQL Server オブジェクト エクスプローラーは、Visual Studio インストーラーデータ ストレージと処理ワークロードの一部としてインストールされます)。SQL Server ノードを展開します。 LocalDB インスタンスを右クリックし、[ 新しいクエリ] を選択します。

      クエリ エディター ウィンドウが開きます。

    2. Northwind Transact-SQL スクリプトをクリップボードにコピーします。 この T-SQL スクリプトは、Northwind データベースを最初から作成し、データを設定します。

    3. T-SQL スクリプトをクエリ エディターに貼り付け、[ 実行] ボタンを選択します。

      しばらくすると、クエリの実行が完了し、Northwind データベースが作成されます。

Windows フォーム アプリケーションを作成する

C# または Visual Basic 用の新しい Windows フォーム アプリ (.NET Framework) プロジェクトを作成します。 プロジェクトに WindowsSearchForm という名前を付けます。

データ ソースの作成

この手順では、データ ソース構成ウィザードを使用してデータベースから データ ソース を作成します。

  1. [ データ ソース ] ウィンドウを開くには、クイック検索 (Ctrl+Q) を使用し、 データ ソースを検索します。

  2. [ データ ソース ] ウィンドウで、[ 新しいデータ ソースの追加 ] を選択して、 データ ソース構成 ウィザードを開始します。

  3. [データ ソースの種類の選択] ページで、 [データベース] を選択し、 [次へ] を選択します。

  4. [ データベース モデルの選択 ] 画面で、[ データセット] を選択し、[ 次へ] を選択します。

  5. [ データ接続の選択 ] ページで、次のいずれかの操作を行います。

    • Northwind サンプル データベースへのデータ接続がドロップダウン リストで使用できる場合は、それを選択します。

    • [ 新しい接続] を選択して、[ 接続の追加/変更 ] ダイアログ ボックスを起動します。

  6. [ アプリケーション構成ファイルへの接続文字列の保存 ] ページで、[ 次へ] をクリックします。

  7. [ データベース オブジェクトの選択] ページで、[ テーブル ] ノードを展開します。

  8. Customers テーブルを選択し、[完了] を選択します。

    NorthwindDataSet がプロジェクトに追加され、[データ ソース] ウィンドウに Customers テーブルが表示されます。

フォームを作成する

データ バインド コントロールを作成するには、[データ ソース] ウィンドウからフォームに項目をドラッグします。

  1. Windows フォーム デザイナーにアクティブなフォーカスがあり、[ データ ソース] ウィンドウが開いてピン留めされていることを確認します。

  2. [データ ソース] ウィンドウで [顧客] ノードを展開します。

  3. [データ ソース] ウィンドウからフォームに [顧客] ノードをドラッグします。

    レコード内を移動するための DataGridView とツール ストリップ (BindingNavigator) がフォームに表示されます。 NorthwindDataSet、CustomersTableAdapter、BindingSource、およびBindingNavigatorがコンポーネント トレイに表示されます。

クエリにパラメーター化 (検索機能) を追加する

[検索条件ビルダー] ダイアログ ボックスを使用して、元のクエリにWHERE句を追加できます。

  1. フォームのデザイン画面のすぐ下にある customersTableAdapter ボタンを選択し、[ プロパティ ] ウィンドウで [ クエリの追加] を選択します。

  2. [検索条件ビルダー] ダイアログ ボックスの [新しいクエリ名] 領域に「FillByCity」と入力します。

  3. [クエリ テキスト] 領域のクエリにWHERE City = @Cityを追加します。

    クエリは次のようになります。

    SELECT CustomerID, CompanyName, ContactName, ContactTitle,
         Address, City, Region, PostalCode, Country, Phone, Fax
    FROM Customers
    WHERE City = @City
    

    Access データ ソースと OLE DB データ ソースでは、疑問符 ('?') を使用してパラメーターが示されるため、 WHERE 句は次のようになります: WHERE City = ?

  4. [ OK] を クリックして、[ 検索条件ビルダー ] ダイアログ ボックスを閉じます。

    FillByCityToolStrip がフォームに追加されます。

アプリケーションをテストする

アプリケーションを実行すると、フォームが開き、パラメーターを入力として受け取る準備が整います。

  1. F5 押して、アプリケーションを実行します。

  2. [市区町村] テキスト ボックスに「London」と入力し、[FillByCity] を選択します。

    データ グリッドには、条件を満たす顧客が入力されます。 この例では、データ グリッドには、City 列に London の値を持つ顧客のみが表示されます。

次のステップ

アプリケーションの要件に応じて、パラメーター化されたフォームを作成した後に実行する必要がある手順がいくつかあります。 このチュートリアルでは、次のような改善を行うことができます。

  • 関連データを表示するコントロールを追加する。 詳細については、「 データセットのリレーションシップ」を参照してください。

  • データベース オブジェクトを追加または削除するためのデータセットの編集。 詳細については、「データセットの 作成と構成」を参照してください。