Visual Studio でデータベースに接続する

この記事の手順では、Visual Studio IDE でデータ ソースに接続する方法を示します。 データ ソースは、ローカル データベース、オンライン データ サービス、または .mdf ファイルから開いたデータベースにすることができます。 Visual Studio でデータを直接操作できます。 クエリの実行、データの編集、テーブルとその他のスキーマ プロパティの作成と編集、ストアド プロシージャ、関数、トリガーの編集などを行うことができます。 これらの関数は、使用しているプログラミング言語または .NET のバージョンに依存しません。

サーバー エクスプローラーと SQL Server オブジェクト エクスプローラー

サーバー エクスプローラーまたは SQL Server オブジェクト エクスプローラーを使用して、データベースまたはサービス、.mdf ファイルから開いた LocalDB データベースへの接続を開き、テーブルとデータ行を表示および編集できます。 これらのウィンドウの機能は、ある程度重複しています。 基本的な違いを次に示します。

  • [サーバー エクスプローラー]

    Visual Studio にデフォルトでインストールされます。 これを使用すると、SQL Server データベース、ADO.NET プロバイダーがインストールされている他のデータベース、および一部の Azure サービスへの接続のテストと表示を行うことができます。 また、システム パフォーマンス カウンター、イベント ログ、メッセージ キューなどの下位レベルのオブジェクトも表示されます。 データ ソースに ADO.NET プロバイダーがない場合は、ここに表示されませんが、プログラムによって接続することで、Visual Studio から使用することができます。

  • Cloud Explorer

    このウィンドウは、Visual Studio Marketplaceから Visual Studio 拡張機能として手動でインストールします。 Azure サービスを探索して接続するための特別な機能を提供します。

  • [SQL Server オブジェクト エクスプローラー]

    SQL Server Data Tools と共にインストールされ、 [表示] メニューに表示されます。 表示されない場合は、コントロールパネルの プログラムと機能 に移動し、Visual Studio を探し、変更 を選択して、SQL Server Data Tools のチェックボックスをオンにしてインストーラーを再実行します。 [SQL Server オブジェクト エクスプローラー] を使用すると、SQL データベース (ADO.NET プロバイダーがある場合) を表示したり、新しいデータベースを作成したり、スキーマを変更したり、ストアド プロシージャを作成したり、接続文字列を取得したり、データを表示したりすることができます。 ADO.NET プロバイダーがインストールされていない SQL データベースはここに表示されませんが、プログラムによってそれらに接続することはできます。

サーバー エクスプローラーまたは SQL Server オブジェクト エクスプローラーを使用して、データベースまたはサービス、あるいは .mdf ファイルから開いた LocalDB データベースへの接続を開き、テーブルとデータ行を表示および編集できます。 これらのウィンドウの機能は、ある程度重複しています。 基本的な違いを次に示します。

  • [サーバー エクスプローラー]

    Visual Studio にデフォルトでインストールされます。 これを使用すると、SQL Server データベース、ADO.NET プロバイダーがインストールされている他のデータベース、および一部の Azure サービスへの接続のテストと表示を行うことができます。 また、システム パフォーマンス カウンター、イベント ログ、メッセージ キューなどの下位レベルのオブジェクトも表示されます。 データ ソースに ADO.NET プロバイダーがない場合は、ここに表示されませんが、プログラムによって接続することで、Visual Studio から使用することができます。

  • [SQL Server オブジェクト エクスプローラー]

    SQL Server Data Tools と共にインストールされ、 [表示] メニューに表示されます。 表示されない場合は、コントロールパネルの プログラムと機能 に移動し、Visual Studio を探し、変更 を選択して、SQL Server Data Tools のチェックボックスをオンにしてインストーラーを再実行します。 [SQL Server オブジェクト エクスプローラー] を使用すると、SQL データベース (ADO.NET プロバイダーがある場合) を表示したり、新しいデータベースを作成したり、スキーマを変更したり、ストアド プロシージャを作成したり、接続文字列を取得したり、データを表示したりすることができます。 ADO.NET プロバイダーがインストールされていない SQL データベースはここに表示されませんが、プログラムによってそれらに接続することはできます。

サーバー エクスプローラーでの接続の追加

データベースへの接続を作成するには、[サーバー エクスプローラー][データベースへの接続] アイコンをクリックするか、[データ接続] ノードで [サーバー エクスプローラー] を右クリックして [接続の追加] を選択します。 ここから、.mdf ファイルから開いた LocalDB データベースへの接続を開き、別のサーバー、SharePoint サービス、または Azure サービス上のデータベースに接続できます。

サーバー エクスプローラーの [新しい接続] アイコンを示すスクリーンショット。

サーバー エクスプローラーの [データベースへの接続] アイコンを示すスクリーンショット。

[接続の追加] ダイアログ ボックスが表示されます。 ここでは、通常は Visual Studio と共にインストールされる SQL Server LocalDB インスタンス (localdb)\MSSqlLocalDB の名前を入力しました。

別のデータベースへのアクセス権がなく、LocalDB がインストールされていない場合は、Visual Studio インストーラーを使って、データの保存と処理または ASP.NET と Web 開発ワークロードの一部として、あるいは個別のコンポーネントとして LocalDB をインストールできます。 Visual Studio の変更に関するページを参照してください。

[新しい接続を追加する] ダイアログ ボックスのスクリーンショット。

[新しい接続を追加する] ダイアログ ボックスのスクリーンショット。

Visual Studio 2022 バージョン 17.8 以降のダイアログには、接続文字列に移動し、接続に使用されるセキュリティ設定に影響を及ぼす 2 つの新しいオプション (暗号化信頼サーバー証明書) が追加されています。 これらのオプションでは、Microsoft.Data.SqlClient 4.0 データベース ドライバーのより厳密なセキュリティ機能がサポートされます。 「暗号化と証明書の検証動作の変更」を参照してください。

セキュリティ プラクティスとしては、暗号化を使用し、そのための証明書をサーバーにインストールすることをお勧めします。 暗号化と証明書の検証に関するページを参照してください。 この強化されたセキュリティをオプトアウトするには、[暗号化][オプション (False)] に設定します。

Visual Studio 17.8 以降で [暗号化] をオプションに設定しない場合は、Microsoft.Data.SqlClient バージョン 4.0 が使用され、暗号化は既定で必須になります。 これは以前のバージョンの動作からの破壊的変更です。 有効な証明書がない場合、または信頼サーバー証明書を選択していない場合は、次のエラー メッセージが表示されます。

この接続で暗号化が有効になっています。ターゲット SQL Server の SSL と証明書の構成を確認するか、接続ダイアログで [サーバー証明書を信頼する] を有効にしてください。

追加情報

サーバーとの接続は正常に確立されましたが、ログイン プロセスでエラーが発生しました。 (プロバイダー: SSL プロバイダー、エラー: 0 - 証明書チェーンは、信頼されていない機関によって発行されました。)(Microsoft SQL Server)

認証のタイプ

さまざまなシナリオに対応するさまざまな認証のタイプから選択できます。 詳細については、「認証のタイプ」を参照してください。

Visual Studio 17.8 以降では、SQL 接続の認証オプションの名前が、Active Directory から Microsoft Entra への名前の変更が反映されるように更新されています。

Visual Studio 17.8 以降の認証タイプを示すスクリーンショット。

MDF データベース ファイルを開く

.mdf ファイルはマスター データベース ファイルを表し、ファイルにパッケージ化された SQL データベースです。 これらのファイルには、そのデータベースのログを含む関連付けられた .ldf (ログ データベース ファイル) があります。 サービス ベースのデータベース項目をプロジェクトに追加することで、.mdf ファイルに格納される新しいデータベースを作成できます。 「データベースを作成してテーブルを追加する」を参照してください。

プロジェクトに .mdf ファイルが既にある場合は、ダブルクリックまたは右クリックして [開く] を選択し、サーバー エクスプローラーで開くことができます。

Visual Studio のサーバー エクスプローラーでプロジェクトにない .mdf ファイルを開くには、これらの手順に従います。

  1. [接続の追加] ダイアログ ボックスの [データ ソース] で、[Microsoft SQL Server データベース ファイル (SqlClient)] を選択します。

  2. [参照] ボタンを使用して、マスター データベース ファイル (.mdf ファイル) を検索して選択するか、[データベース ファイル名] ボックスにパスを入力します。

    [接続の追加] ダイアログ ボックスを示すスクリーンショット。SQL Database ファイルに接続しています。

  3. 認証方法を選択します。

  4. 接続をテストし、成功した場合は [OK] を選択します。 データベースのノードがサーバー エクスプローラーで開きます。

プロバイダーの変更

データ ソースが不要な場合は、 [変更] ボタンをクリックして、新しいデータ ソースまたは新しい ADO.NET データ プロバイダーを選択します。 新しいプロバイダーは、構成方法に応じて、資格情報を要求する場合があります。

Note

Visual Studio 2022 を使用して OLEDB または ODBC データ プロバイダーに接続している場合は、Visual Studio 2022 が 64 ビット プロセスになっていることに注意する必要があります。

つまり、Visual Studio のデータ ツールによっては、32 ビットのデータ プロバイダーを使用して OLEDB または ODBC データベースに接続できないということです。 これには、Microsoft Access 32 ビット OLEDB データ プロバイダーと、その他のサードパーティ製 32 ビット プロバイダーが含まれます。

OLEDB または ODBC に接続している 32 ビット アプリケーションを維持する必要がある場合は、引き続き Visual Studio 2022 を使用してアプリケーションをビルドして実行することができます。 ただし、サーバー エクスプローラー、データ ソース ウィザード、データセット デザイナーなどの Visual Studio データ ツールを使用する必要がある場合は、32 ビット プロセスである以前のバージョンの Visual Studio を使用する必要があります。 32 ビット プロセスの Visual Studio としては、Visual Studio 2019 が最後のバージョンとなっています。

プロジェクトを変換して 64 ビット プロセスとする予定がある場合は、64 ビットのデータ プロバイダーを使用するように OLEDB および ODBC データ接続を更新する必要があります。

アプリケーションでは、Microsoft Access データベースを使用していて、プロジェクトを 64 ビットに変換できる場合は、64 ビットの Microsoft Access Database Engine (Access Connectivity Engine (ACE) とも呼ばれる) を使用することをお勧めします。 詳細について、Jet および ODBC ドライバー用の OLEDB プロバイダーは 32 ビット バージョンのみに関するページを参照してください。

サードパーティ製データ プロバイダーを使用している場合は、プロジェクトを 64 ビットに変換する前に、該当するベンダーに連絡して 64 ビットのプロバイダーが提供されているかどうかを確認することをお勧めします。

ADO.NET データ プロバイダの変更方法を示すスクリーンショット。

ADO.NET データ プロバイダの変更方法を示すスクリーンショット。

接続をテストする

データ ソースを選択し、 [接続テスト] をクリックします。 成功しない場合は、ベンダーのドキュメントに基づいてトラブルシューティングを行う必要があります。

テスト接続成功のメッセージ ボックスを示すスクリーンショット。

テスト接続成功のメッセージ ボックスを示すスクリーンショット。

テストが成功すると、データ ソースを作成する準備が整います。これは、基になるデータベースまたはサービスに基づく データ モデル を意味する Visual Studio の用語です。

SQL Server オブジェクト エクスプローラーを使用して接続する

SQL Server オブジェクト エクスプローラーを使用すると、ローカルで使用可能なデータベースの検出、ローカル ネットワーク、Azure サブスクリプションに関するヘルプや、最近使用した選択の履歴をダイアログで参照できるため、作業が容易になります。

SQL Server オブジェクト エクスプローラーから接続ダイアログにアクセスするには、ツール バーの [SQL Server の追加] ボタンをクリックします。

SQL Server オブジェクト エクスプローラーの [SQL Server の追加] ボタンのスクリーンショット

接続ダイアログが表示されます。 ローカル、ネットワーク、または Azure SQL Server を選択し、データベースを選択し、資格情報を入力して [接続] を選択します。

SQL Server オブジェクト エクスプローラーの [接続] ダイアログのスクリーンショット。

その他の設定を接続文字列に設定する必要がある場合は、 [詳細設定] リンクを使用してすべての設定を表示できます。 たとえば、MDF ファイルに基づく LocalDB データベースに接続するには、[詳細設定] を選択してから、AttachDbFilename プロパティを設定します。

詳細設定のスクリーンショット。

接続の設定が完了すると、サーバーとデータベースが SQL Server オブジェクト エクスプローラーのウィンドウに表示されます。

接続完了メッセージを示すスクリーンショット。

ここから、データベースの参照、クエリの作成と実行、データ、ストアド プロシージャ、関数の編集、その他の操作を Visual Studio で直接実行できます。

次のステップ

(.NET Core または .NET 5 以降ではなく) .NET Framework と Windows フォームまたは WPF を使っている場合、[データ ソース] ウィンドウを使って、たとえば、Windows フォーム アプリケーションや WPF アプリケーションのコントロール用のデータ バインディングを設定できます。新しいデータ ソースの追加に関するページを参照してください。 これらのツールは、ユーザーがデータを入力、表示、操作する必要がある Windows アプリケーションを迅速に作成できるように設計されています。

.NET 5 以降、.NET Core、または ASP.NET Core を使用している場合は、接続済みサービスを使用してアプリをデータベースに接続できます。 接続済みサービスを使用すると、SQL LocalDB、コンテナーで実行される SQL Server、または SQL Server のオンプレミス インスタンスによってホストされるローカル開発データベースを簡単な手順で使用でき、クラウドに配置する準備ができたら、Azure SQL Database に移行できます。 .NET 5 以降、.NET Core、および ASP.NET Core の場合は、データベース フレームワークとして Entity Framework Core を使用することを検討してください。