C# で SQL データベースに接続する

Fil Zjazel Romaeus Villegas 2023年10月12日
C# で SQL データベースに接続する

このチュートリアルでは、SqlConnection オブジェクトを使用して C# で SQL データベースに接続する方法を示します。

C# で SQL データベースに接続するには SqlConnection オブジェクトを使う

SqlConnection クラスは、渡された接続文字列で指定された SQL Server データベースへの接続を表すオブジェクトです。これは、名前空間 System.Data.SqlClient に含まれています。

SqlConnection connection = new SqlConnection(connectionString);

接続文字列には、データソース、データソースへの接続方法、および接続構成の詳細に関する情報が含まれています。接続文字列にはさまざまなパラメータを含めることができますが、最も一般的に使用されるパラメータのいくつかについて説明します。

  1. Server / Data Source:データベースを保持しているサーバーの名前。
  2. Database / Initial Catalog:これはデータベースの名前です。
  3. Trusted Connection / Integrated Security:アプリケーションがシステムで利用可能なセキュリティパッケージを使用できるかどうかを指定します。これが true に設定されている場合、ユーザーID とパスワードのパラメーターは必要ありません。
  4. User ID:接続のユーザー名。
  5. Password:接続に使用するパスワード。

接続文字列を SqlConnection オブジェクトに渡すと、そのメソッドを使用して接続を管理できます。

  1. Open():接続を開きます。
  2. Close():接続を閉じます。
  3. Dispose():接続で使用されていたリソースを解放します。
  4. ChangeDatabase():開いている SqlConnection の現在のデータベースを変更します。

例:

using System;
using System.Data.SqlClient;

namespace SQLConnection_Sample {
  class Program {
    static void Main(string[] args) {
      // The server's name that holds the database
      string DataSource = "MSI\\SQLEXPRESS";

      // The name of the database
      string InitialCatalog = "SampleDB";

      // Sets if the connection should use integrated security.
      // If this value is set to "SSPI", the user's Windows Authentication will be used
      string IntegratedSecurity = "SSPI";

      // Should the database require a specific log in
      string UserID = "";
      string Password = "";

      string connectionString = "Data Source =" + DataSource +
                                "; Initial Catalog =" + InitialCatalog +
                                "; Integrated Security=" + IntegratedSecurity
          //+ "; User ID=" + UserID
          //+ "; Password=" + Password
          ;

      try {
        SqlConnection connection = new SqlConnection(connectionString);
        connection.Open();
        Console.WriteLine("The database has been opened!");
        Console.WriteLine("Connection State: " + connection.State.ToString());

        connection.Close();
        Console.WriteLine("The database has been closed!");

        connection.Dispose();
        Console.WriteLine("The database connection has been disposed!");
        Console.WriteLine("Connection State: " + connection.State.ToString());
      } catch (Exception ex) {
        Console.WriteLine("There's an error connecting to the database!\n" + ex.Message);
      }

      Console.ReadLine();
    }
  }
}

上記の例では、最初にサーバー、データベース名、および統合セキュリティパラメータを入力して接続文字列を作成しました。それを SqlConnection オブジェクトに渡した後、接続を開いて閉じ、最後に破棄することで、さまざまな状態を示しました。

これらはすべてコンソールに出力されます。

出力:

The database has been opened!
Connection State: Open
The database has been closed!
The database connection has been disposed!
Connection State: Closed

関連記事 - Csharp SQL