2013-03-20 37 views
9

ADOを使用してSQLサーバーデータベースに接続しようとしています。パスワードには最後の文字としてスペースが含まれています。接続文字列を作成するときに、パスワードをどのようにエスケープする必要がありますか?接続文字列のエスケープスペース

これは私の接続文字列は次のようになります

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

... MSDNは、単一または二重引用符でそれを置くと言うが、それが動作していないようです:

Provider=SQLOLEDB;Persist Security Info=False;Initial Catalog=master;Data Source=test;uid=john;pwd="123 " 

感謝

+0

同様のバージョンの接続文字列を表示できますか。 – Paul

+0

pwdにスペースが含まれている必要がありますか? – RBA

+3

'パスワードには最後の文字としてスペースが含まれています。'なぜ、なぜ、なぜ、なぜ、なぜですか?多くのインターフェイスはltrim/rtrim文字列です。これは、単純により良いパスワードを使用する必要がある場合には、これを回避することを試みるのは愚かなようです。 –

答えて

12

が何であるかを教えてください:

Provider=SQLOLEDB;Password="123 ";Persist Security Info=True;User ID=john;Initial Catalog=mydbname;Data Source=127.0.0.1 
  1. pwdキーワードがPasswordの代わりに使用されている場合には、接続に失敗する - あなたは、二重引用符で囲む必要がありPasswordキーワードを使用する必要があります。
  2. User IDの代わりにuidがうまくいきます。接続ビルダーがデフォルトで作成するため、Id3eはまだUser IDを使用します。
  3. Persist Security Infoキーワード(コメントの1つに記載されています)は、接続に影響を与えません - @Tlamaはよくコメントしました"接続することはできますが、パスワードを偽のままにしておくとIDBPropertiesインターフェイスからパスワードを返さない"
  4. 接続文字列のキーワードの順序は重要ではありません。 IDBPropertiesインタフェースは、SQL Server 2008 R2でテストinternal "Properties" collection

にこの文字列を解析します。

+0

あなたは2つのことを変更しました。値の名前を 'pwd'から' Password'に変更しましたが、文字列の末尾にないように値を移動しました。両方の変更が必要ですか? –

+3

順序は関係ありません。私はパスワードにpwdを変更したが、最後にそれを維持... –