Взяв строку из базы данных и поместив ее в переменную, переменная содержит 2 дополнительных \\ - PullRequest
0 голосов
/ 30 октября 2019

Пользователь может ввести строку подключения, например: (LocalDb)\\MSSQLLocalDB, ef core позаботится о том, чтобы поместить это в мою таблицу и правильно ее сохранить. однако когда я читаю его обратно и пытаюсь использовать, он содержит дополнительные 2 \ например (LocalDb)\\\\MSSQLLocalDB,

. Я извлекаю его непосредственно из базы данных, используя ядро ​​ef, и сохраняю его в переменной следующим образом:

     var serverConn = dbSetting.CustomerConnectionSettings.ServerConnection;

В serverConn есть строка с дополнительным символом \\, вызывающим сбой соединения. Нужно ли выполнять какое-либо кодирование / декодирование?

Ответы [ 2 ]

2 голосов
/ 30 октября 2019

Вам нужен только один слеш при подключении к LocalDB ((LocalDb)\\MSSQLLocalDB). Я думаю, что вы (или пользователь) думаете, что вам нужно избежать косой черты, как вы делаете в коде (например, string conString = "(LocalDb)\\MSSQLLocalDB").

Но если строка соединения где-то хранится, вам следует использовать только одну косую черту. Вы все равно увидите две косые черты в отладчике, но если вы распечатаете их, то увидите, что действительно есть только одна косая черта.

0 голосов
/ 30 октября 2019

C # будет выходить из каждой косой черты с двумя косыми чертами.

Его не нужно экранировать в базе данных, поэтому сохраните его с 1 косой чертой в базе данных.

...