【C# コード付き】SQL Server 接続文字列でポート番号を指定してデータベース操作を行う方法
SQL Server 接続文字列でポート番号を指定する方法
デフォルトのポート番号
通常、SQL Server は 1433 というポート番号を使用します。しかし、別のポート番号を使用するように設定することもできます。
ポート番号を指定する必要がある場合
以下の場合、接続文字列でポート番号を指定する必要があります。
- SQL Server がデフォルト以外のポート番号を使用している場合
- ファイアウォールが特定のポート番号のみを許可している場合
ポート番号の指定方法
接続文字列でポート番号を指定するには、以下の方法があります。
方法 1: Server
キーワードにポート番号を含める
Server=localhost,1433;
方法 2: Data Source
キーワードにポート番号を含める
Data Source=localhost:1433;
方法 3: Network Library
キーワードを使用する
Data Source=localhost;
Network Library=DBMSSOCN;
Port=1433;
各方法の詳細
方法 1:
Server
キーワードは、サーバー名とポート番号を指定します。- サーバー名とポート番号の間には カンマ を区切りとして使用します。
Network Library
キーワードは、使用するネットワークライブラリを指定します。Port
キーワードは、ポート番号を指定します。
例
以下の例は、ポート番号 1433 を使用して localhost
上の SQL Server に接続する接続文字列です。
Server=localhost,1433;
Database=test;
Integrated Security=True;
- SQL Server 接続文字列でポート番号を指定するには、
Server
キーワード、Data Source
キーワード、またはNetwork Library
キーワードを使用できます。
using System;
using System.Data.SqlClient;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
// 接続文字列
string connectionString = "Server=localhost,1433;Database=test;Integrated Security=True;";
// SqlConnection オブジェクトを作成
using (SqlConnection connection = new SqlConnection(connectionString))
{
// SqlCommand オブジェクトを作成
using (SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers", connection))
{
// 接続を開く
connection.Open();
// SqlCommand オブジェクトを実行
SqlDataReader reader = command.ExecuteReader();
// データを読み取る
while (reader.Read())
{
Console.WriteLine("{0} {1}", reader["FirstName"], reader["LastName"]);
}
// 接続を閉じる
connection.Close();
}
}
}
}
}
このコードの説明
using
ステートメントを使用して、SqlConnection
オブジェクトとSqlCommand
オブジェクトを確実に破棄します。Database
キーワードを使用して、接続するデータベースを指定します。Integrated Security
キーワードを使用して、Windows 認証を使用することを指定します。SqlCommand
オブジェクトを使用して、SQL クエリを実行します。SqlDataReader
オブジェクトを使用して、クエリ結果を読み取ります。
実行方法
- Visual Studio で新しい C# コンソール アプリケーションプロジェクトを作成します。
- 上記のコードをコードファイルに貼り付けます。
- 接続文字列を必要に応じて変更します。
- プロジェクトをビルドして実行します。
出力例
John Doe
Jane Doe
環境変数を使用する
SQLSERVER_PORT
という環境変数を作成し、そこにポート番号を設定することで、接続文字列でポート番号を指定する必要がなくなります。
設定方法
- コマンドプロンプトを開き、以下のコマンドを実行します。
set SQLSERVER_PORT=1433
接続文字列
Server=localhost;
Database=test;
Integrated Security=True;
注意点
- この方法は、すべてのアプリケーションで有効になるわけではありません。
- 環境変数は、ユーザー環境変数とシステム環境変数のどちらでも設定できます。
SQL Server Browser サービスを使用する
SQL Server Browser
サービスは、SQL Server インスタンスの名前とポート番号をマップするサービスです。このサービスを有効にすることで、接続文字列でポート番号を指定する必要がなくなります。
サービスの有効化
- コントロールパネルを開き、「管理ツール」→「サービス」を選択します。
- 「SQL Server Browser」サービスを見つけて、右クリックします。
- メニューから「プロパティ」を選択します。
- 「スタートアップの種類」を「自動」に変更します。
- 「サービスの開始」ボタンをクリックします。
Server=localhost\MSSQLSERVER;
Database=test;
Integrated Security=True;
- この方法は、SQL Server 2005 以降で使用できます。
SQL Server Browser
サービスは、デフォルトで有効になっています。
別名をを使用する
SQL Server Management Studio を使用して、サーバーの別名を作成することができます。別名には、サーバー名、ポート番号、データベース名などを含めることができます。
別名の作成
- SQL Server Management Studio を開きます。
- オブジェクトエクスプローラーで、「サーバー」ノードを展開します。
- 「別名」ノードを右クリックします。
- 別名の名前とサーバー名を入力します。
- 「ポート」フィールドに、ポート番号を入力します。
- 必要に応じて、データベース名を入力します。
- 「OK」ボタンをクリックします。
Server=MyAlias;
Database=test;
Integrated Security=True;
- この方法は、SQL Server Management Studio がインストールされている必要があります。
sql-server