2014-04-11 6 views
5

Angenommen, ich habe ein Kennwort, das wie folgt aussieht: Kennwort;SQL Server 2008-Kennwort, das in einem Semikolon endet

Wie kann ich es mit einem Semikolon als das letzte Zeichen arbeiten. Das Passwort funktioniert in SSMS und ODBC, aber nicht mit der Verbindungszeichenfolge. Ich habe versucht " um es, aber das scheint nicht zu funktionieren.

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

Dies ist für eine ASP.NET-Webanwendung. Soweit ich das beurteilen kann, ist es unmöglich.

Antwort

10

Ich verwende den folgenden Code zum Herstellen einer Verbindung mit 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: auch versucht, die Verbindungszeichenfolge zu verwenden, die Sie haben und es funktioniert auf meinem Rechner.

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

Danke für die Antwort. Ich habe eine neue Web-App erstellt und Ihre Lösung getestet und es hat funktioniert. Derselbe Benutzer/Pw in meiner Haupt-App hat nicht funktioniert, also muss ich jetzt herausfinden, was dort vor sich geht. Aber jetzt weiß ich, dass es möglich ist. – smoore4

+1

1k. Glückwunsch, abhi! – smoore4

+0

Wenn Sie eine 'stringconnection' mit' 'Elementen anstelle von Attributen haben, funktioniert diese Methode. ' ' – 3d0

4

Um Werte einzuschließen, die ein Semikolon, ein einfaches Anführungszeichen oder ein Anführungszeichen enthalten, muss der Wert in doppelte Anführungszeichen gesetzt werden.

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

Grundsätzlich haben Sie dort alle entkommen Prozeduren einer Verbindungszeichenfolge.

+1

ich alle diese versucht haben. Ich fordere jemanden heraus, ein Passwort wie dieses zu erstellen und mit einer Verbindungszeichenfolge zu verbinden. Ich denke, es ist unmöglich. – smoore4

1

Ja, das ist möglich. Die Antwort ist in Petes Antwort in diesem Thread gegeben: Escape ;(semicolon) in odbc connection string in app.config file

Grundsätzlich müssen Sie einfache Anführungszeichen um den Benutzername/Passwort Felder, nicht die Zeichen, die Sie entfliehen wollen gestellt, das ist, wo ich falsch ging.

Um Petes Beispiel zu stehlen:

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

benötigt werden:

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