2014-04-11 12 views
5

Załóżmy, że mam hasło wyglądające tak: hasło;Hasło SQL Server 2008 kończące się na średniku

W jaki sposób sprawić, by działał ze średnikiem jako ostatnią postacią. Hasło działa w SSMS i ODBC, ale nie w połączeniu z łańcuchem. Próbowałem wokół niego ", ale to nie działa.

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

Jest to aplikacja internetowa ASP.NET. O ile wiem, jest to niemożliwe.

Odpowiedz

10

Korzystam z następującego kodu, aby połączyć się z 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: również próbował użyć ciąg połączenia, które masz i działa na moim komputerze.

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

Dzięki za odpowiedź. Stworzyłem nową aplikację internetową i wypróbowałem Twoje rozwiązanie i zadziałało. Ten sam użytkownik/pw w mojej głównej aplikacji nie działa, więc teraz muszę się dowiedzieć, co się tam dzieje. Ale teraz wiem, że to możliwe. – smoore4

+1

1k. gratulacje abhi! – smoore4

+0

Jeśli masz 'stringconnection' z' 'elementami zamiast atrybutów, ta metoda działa. ' ' – 3d0

4

Aby uwzględnić wartości, które zawierają znak średnika, pojedynczy cudzysłów lub znak podwójnego cudzysłowu, wartość należy ująć w cudzysłów.

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

Zasadniczo masz tam cały uciekających procedur ciąg połączenia.

+1

Próbowałem wszystkie z nich. Naprawdę wzywam kogoś do stworzenia takiego hasła i łączenia się z ciągiem połączenia. Myślę, że to niemożliwe. – smoore4

1

Tak, jest to możliwe. Odpowiedź jest podana w odpowiedzi Pete'a w tym wątku: Escape ;(semicolon) in odbc connection string in app.config file

Zasadniczo trzeba umieścić apostrofów wokół login/hasło pola, a nie znaki, które chcą uciec, czyli tam, gdzie ja jechałem źle.

ukraść przykład Pete'a:

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

musi stać:

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