2014-04-11 2 views
5

Предположим, у меня есть пароль, который выглядит так: password;Пароль SQL Server 2008, заканчивающийся точкой с запятой

Как я могу заставить его работать с точкой с запятой в качестве последнего символа. Пароль работает в SSMS и ODBC, но не с строкой подключения. Я пробовал " вокруг него, но это, похоже, не работает.

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

Это для веб-приложения ASP.NET. Насколько я могу судить, это невозможно.

ответ

10

Я использую следующий код для подключения к 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: также пытался использовать строку соединения, у вас есть, и он работает на моей машине.

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

Спасибо за ответ. Я создал новое веб-приложение и попробовал ваше решение, и оно сработало. Тот же пользователь/pw в моем основном приложении не работал, поэтому теперь мне нужно выяснить, что там происходит. Но теперь я знаю, что это возможно. – smoore4

+1

1k. поздравляю abhi! – smoore4

+0

Если у вас есть 'stringconnection' с элементами' 'вместо атрибутов, этот метод работает. ' <имя параметра = значение "Источник данных"= "1.2.3.4" isSensitive = "ложь"/> <имя параметра = "Initial Catalog" значение = "MyCATALOG" isSensitive = "false" /> <параметр name = "Идентификатор пользователя" value = "myUserName" isSensitive = "false" /> ' – 3d0

4

Чтобы включить значения, содержащие символ с запятой, символ с одной кавычкой или символ двойной кавычки, значение должно быть заключено в двойные кавычки.

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

В основном у вас есть там все вылетающие процедуры строки подключения.

+1

Я попробовал все из них. Я действительно бросаю вызов кому-то создать такой пароль и подключиться к строке подключения. Я думаю, что это невозможно. – smoore4

1

Да, это возможно. Ответ дается в ответ Пита в этой теме: Escape ;(semicolon) in odbc connection string in app.config file

В принципе, вам нужно поставить одинарные кавычки имя пользователя/пароль поля, а не символы, которые вы хотите, чтобы бежать, где я собирался неправильно.

Украсть пример Пита:

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

должно стать:

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