У меня есть строка подключения в моей веб-конфигурации:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />
Как Вы видите, существует знак цитаты (") в пароле (данный от другого отдела. Я не могу изменить этот пользовательский пароль дб).
Как я должен выйти из кавычки в этой строке подключения?
Btw: Я уже попробовал и кавычка; в строке. Это не работало - ado.net получил ArgumenException затем: "Формат строки инициализации не соответствует спецификации, запускающейся в индексе 57". 57 то, где и кавычка; находится в моей строке подключения. Я также пытался включить часть пароля в '-не работал также.
Также попробованный ""и \" - web.config не может быть проанализирован затем.
Спасибо за решение:
Я должен был объединить выход двойной кавычки и помещение пароля в одинарных кавычках:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" providerName="System.Data.SqlClient" />
Используйте «
вместо »
, чтобы избежать этого.
web.config - это файл XML, поэтому следует использовать экранирование XML.
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
См. эту ветку форума.
Обновление :
«
должно работать, но, поскольку это не так, пробовали ли вы некоторые другие escape-последовательности строк для .NET? \"
и ] ""
?
Обновление 2:
Попробуйте одинарные кавычки для connectionString:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
Или:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
Обновление 3:
Из MSDN (Свойство SqlConnection.ConnectionString ):
Чтобы включить значения, содержащие точку с запятой, символ одинарной или двойной кавычки, значение должно быть заключено в двойные кавычки. Если значение содержит как точку с запятой, так и символ двойных кавычек, значение можно заключить в одинарные кавычки.
Итак:
connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
Проблема не в web.config, а в формате строки подключения. В строке подключения, если у вас есть "
в значении (пары ключ-значение), вам необходимо заключить значение в '
. Итак, while Пароль = somepass "word
не работает, Password = 'somepass" word'
работает.