2013-03-20 19 views
9

Sto provando a connettersi a un database di SQL Server utilizzando ADO. La password contiene uno spazio come ultimo carattere. Quando si crea la stringa di connessione, come dovrei sfuggire la password?spazio di fuga in stringa di connessione

MSDN dice metterlo tra virgolette singole o doppie, ma questo non sembra funzionare ...

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

Questo è ciò che la mia stringa di connessione appare come:

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

Grazie

+0

Possiamo vedere una versione simile della stringa di connessione, per favore? – Paul

+0

dovrebbe il pwd contenere uno spazio? – RBA

+3

'La password contiene uno spazio come ultimo carattere. Perché, perché, perché, perché, perché? Molte interfacce eseguiranno stringhe ltrim/rtrim. Questo sembra sciocco per cercare di aggirare questo quando si dovrebbe semplicemente usare una password migliore. –

risposta

12

posso dirvi cosa fa lavoro:

Provider=SQLOLEDB;Password="123 ";Persist Security Info=True;User ID=john;Initial Catalog=mydbname;Data Source=127.0.0.1 
  1. Quando pwd parola chiave è usato al posto di Password si riesce a connettersi - È necessario utilizzare Password parola chiave che dovrebbe essere racchiuso tra doppi apici.
  2. uid anziché User ID funziona bene - Id'e ancora utilizzare User ID perché il generatore di connessione lo crea per impostazione predefinita.
  3. Persist Security Info parola chiave (è stato menzionato in uno dei commenti) non ha alcun impatto sulla connessione - Come @TLama ben commentato "È possibile connettersi, ma non si ottiene la password indietro dall'interfaccia IDBProperties, se si tiene False ".
  4. L'ordine delle parole chiave nel collegamento-stringa non è importante. l'interfaccia IDBProperties analizza questa stringa in un internal "Properties" collection

Testato con SQL Server 2008 R2.

+0

Hai cambiato due cose. Hai cambiato il nome del valore da 'pwd' a' Password', ma hai anche spostato il valore in modo che non sia più alla fine della stringa. Sono necessarie entrambe le modifiche? –

+3

L'ordine non ha importanza. Ho cambiato PWD in Password ma l'ho tenuto alla fine ... –