Апостроф (одинарная кавычка) в строке подключения

c# entity-framework connection-string

2109 просмотра

2 ответа

У меня проблемы с 'персонажем в строке подключения. Entity Framework выдает исключение, говорящее:

Формат строки инициализации не соответствует спецификации, начиная с индекса

Я попробовал ответы, предложенные здесь и здесь, но безрезультатно.

Я также попытался SqlConnectionStringBuilderсоздать его с помощью класса и в результате получил то же исключение.

Может кто-нибудь мне помочь?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Строка подключения действительно находится в файле web.config и выглядит следующим образом:

<add name="TestEntities" connectionString="metadata=res://*/DAL.TestModel.csdl|res://*/DAL.TestModel.ssdl|res://*/DAL.TestModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\testsource;initial catalog=testdb;User Id=testuser;Password=test'password;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

проблема с Password=test'passwordбитом.

  1. Я не могу поместить это в двойные кавычки, потому что это уже окружено ими.
  2. Я не могу поместить это между &quot;-s, потому что это уже окружено ими также.
  3. И я не могу поместить это в одинарные кавычки, потому что сама единственная цитата - это то, что я пытаюсь избежать.

Password='test&apos;password' не работает

Автор: TKharaishvili Источник Размещён: 29.10.2019 10:46

Ответы (2)


5 плюса

Решение

Я наконец наткнулся на правильный ответ. Похоже, вы должны заключить значение в одинарные кавычки и дополнительно продублировать внутренний апостроф, чтобы избежать его, например:

Password='test''password'

Это такая глупая проблема, чтобы тратить столько времени на это. Я надеюсь, что это сэкономит кому-то время в будущем.

Спасибо всем за участие.

Автор: TKharaishvili Размещён: 07.04.2016 02:41

1 плюс

Предполагая, что это пароль, который содержит одинарные кавычки, вы должны попытаться заключить пароль в двойные кавычки, закодированные в xml, что-то вроде этого:

<connectionStrings>
  <add name="MyConnectionString" connectionString="Data Source=.;
    Initial Catalog=MYDB; User ID=MyUser;Password=&quot;my'password&quot;;
    providerName="System.Data.SqlClient";/>
</connectionStrings>

Предполагая, что вы находитесь не в контексте Xml (как упомянуто @PanagiotisKanavos), инициализация ConnectionString будет выглядеть следующим образом:

var conn = new SqlConnection("Data Source=.;
    Initial Catalog=MYDB; User ID=MyUser;Password=\"my'password\";
    providerName="System.Data.SqlClient")
Автор: jbl Размещён: 07.04.2016 08:01
Вопросы из категории :
32x32