2014-04-11 2 views
5

Diciamo che ho una password simile a questa: password;SQL Server 2008 password che termina con un punto e virgola

Come posso farlo funzionare con un punto e virgola come ultimo carattere. La password funziona in SSMS e ODBC, ma non con la stringa di connessione. Ho provato con lo " ma non sembra funzionare.

<add name="DbConn" connectionString="Data Source=LOCALHOST;Database=MYDB;Trusted_Connection=no;User Id=myuser;Password=password;" providerName="System.Data.SqlClient" /> 

Questo è per un'applicazione Web ASP.NET. Per quanto posso dire, è impossibile.

risposta

10

Sto usando il seguente codice per connettersi a SQL Server 2008 R2.

var sqlConnection = new SqlConnection() 
      { 
       ConnectionString = "Server=DT2719MOD;Database=abs2;User Id=TestUserLogon;Password='iloveachallenge;';" 

      }; 
     sqlConnection.Open(); 
     Console.WriteLine(sqlConnection.State); 
     sqlConnection.Close(); 

Edit: anche tentato di utilizzare la stringa di connessione che si ha e funziona sulla mia macchina.

ConnectionString="Data Source=DT2719MOD;Database=abs2;Trusted_Connection=no;User Id=TestUserLogon;Password='iloveachallenge;';" 
+0

Grazie per la risposta. Ho creato una nuova app Web e ho provato la soluzione e ha funzionato. Lo stesso utente/pw nella mia app principale non ha funzionato, quindi ora ho bisogno di capire cosa sta succedendo lì. Ma ora so che è possibile. – smoore4

+1

1k. complimenti abhi! – smoore4

+0

Se si ha una 'stringconnection' con' 'elementi invece di attributi, questo metodo funziona. ' ' – 3d0

4

Per includere valori che contengono un punto e virgola, un carattere a virgoletta singola o un carattere a virgolette doppie, il valore deve essere racchiuso tra virgolette.

Da: http://msdn.microsoft.com/en-us/library/windows/desktop/ms722656(v=vs.85).aspx

In pratica dovete là tutte le procedure fuga di una stringa di connessione.

+1

Ho provato tutti questi. Sfido davvero qualcuno a creare una password come questa e connettersi con una stringa di connessione. Penso che sia impossibile. – smoore4

1

Sì, questo è possibile. La risposta è data in risposta di Pete in questa discussione: Escape ;(semicolon) in odbc connection string in app.config file

Fondamentalmente, è necessario mettere apici intorno al nome utente/password campi, non i caratteri che si desidera fuggire, che è dove stavo andando male.

di rubare l'esempio di Pete:

initial catalog=myDB;UserId=MyUser;Password=abc;123;multipleactiveresultsets=True; 

deve diventare:

initial catalog=myDB;UserId='MyUser';Password='abc;123';multipleactiveresultsets=True;