Member 13038914 Ответов: 1

Как можно удалить ошибку, приходящую в нераспознанную escape-последовательность


SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"].ConnectionString);


Что я уже пробовал:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database.mdf;Integrated Security=True;User Instance=True"].ConnectionString);

[no name]

Прежде всего, почему вы пытаетесь прочитать строку подключения из вашего конфигурационного файла с помощью строки подключения? В этом нет никакого смысла.

1 Ответов

Рейтинг:
2

OriginalGriff

В строках C# символ обратной косой черты является "специальным", который вводит "escape-последовательности", такие как двойные кавычки, новая строка и т. д. Если вы хотите использовать символ обратной косой черты в строке, есть два способа.
1) Используйте escape-последовательность для обратной косой черты:'\\':

string str = "D:\\Temp\\";

2) предварите строку знаком atsign, который отключает escape-последовательности:
string str = @"D:\Temp\";
Во втором случае для вставки символа двойной кавычки используются две двойные кавычки:
string str = @"John said ""Hello""";
"\S " не является распознанной escape-последовательностью, поэтому вы получаете это сообщение об ошибке.

Но ... как говорит NotPoliticallyCorrect: "почему вы пытаетесь прочитать строку подключения из вашего конфигурационного файла с помощью строки подключения?"
Обычно вы бы использовали:
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString))
   {
   ...
   }