SQL

接続文字列のセミコロン

データベースの接続文字列はプロパティ名と値のセットをセミコロン (;) で区切って接続先や認証情報などを記述するようになっています。

server=<ServerName>;database=<DatabaseName>;uid=<UserId>;pwd=<Password>

※プロパティ名には、Data Source, Initial Catalogなど、別の名前を使うこともできます。

ユーザとパスワードを直接指定する方法は推奨されていませんが、しかたのないこともあります。

ここからが本題です。パスワード(プロパティの値)にセミコロンが含まれている場合、そのままではセミコロンが区切り文字と認識されてしまいますので、値をダブルクオート (") で囲う必要があります。

server=<ServerName>;database=<DatabaseName>;uid=<UserId>;pwd="<Password>"

IISマネージャで接続文字列を設定するときも同じく、パスワードにセミコロンが含まれる場合は、パスワードをダブルクオートで囲う必要があります。そうしないと、セミコロン以降が切られてしまいます。

Web.configを直接編集する場合は、さらにダブルクオートをエンティティ参照に直さなくてはいけません。

server=<ServerName>;database=<DatabaseName>;uid=<UserId>;pwd=&quot;<Password>&quot;
(2014/06/03 初稿)