Апостроф (одинарная кавычка) в строке подключения
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="data source=.\testsource;initial catalog=testdb;User Id=testuser;Password=test'password;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
проблема с Password=test'password
битом.
- Я не могу поместить это в двойные кавычки, потому что это уже окружено ими.
- Я не могу поместить это между
"
-s, потому что это уже окружено ими также. - И я не могу поместить это в одинарные кавычки, потому что сама единственная цитата - это то, что я пытаюсь избежать.
Password='test'password'
не работает
Ответы (2)
5 плюса
Я наконец наткнулся на правильный ответ. Похоже, вы должны заключить значение в одинарные кавычки и дополнительно продублировать внутренний апостроф, чтобы избежать его, например:
Password='test''password'
Это такая глупая проблема, чтобы тратить столько времени на это. Я надеюсь, что это сэкономит кому-то время в будущем.
Спасибо всем за участие.
Автор: TKharaishvili Размещён: 07.04.2016 02:411 плюс
Предполагая, что это пароль, который содержит одинарные кавычки, вы должны попытаться заключить пароль в двойные кавычки, закодированные в xml, что-то вроде этого:
<connectionStrings>
<add name="MyConnectionString" connectionString="Data Source=.;
Initial Catalog=MYDB; User ID=MyUser;Password="my'password";
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
Вопросы из категории :
- c# Преобразовать десятичную в двойную?
- c# Как рассчитать чей-то возраст в C #?
- c# Как вы сортируете словарь по значению?
- c# В чем разница между int и Integer в Java и C #?
- c# Как создать новый экземпляр объекта из Типа
- c# Datatable против Dataset
- entity-framework Entity Framework против LINQ to SQL
- entity-framework Можете ли вы использовать Microsoft Entity Framework с Oracle?
- entity-framework Несколько бэкэндов для Entity Framework
- entity-framework Как вы выполняете оператор «IN» в стиле SQL в LINQ to Entities (Entity Framework), если Contains не поддерживается?
- entity-framework Конец ассоциации не отображается в структуре объекта ADO
- entity-framework Entity Framework .Include () Навигация другого свойства Навигации
- connection-string Настройка ASP.NET Development Server для подключения к базе данных postgres
- connection-string SQL Server запрос работает медленно из Java
- connection-string Что такое строка подключения драйвера JDBC MySQL?
- connection-string Как я могу получить доступ к SQLite с помощью C #?
- connection-string Java JDBC - Как подключиться к Oracle, используя имя службы вместо SID
- connection-string Строка подключения для экземпляра SQL Server