Случай 1: Если значение в переменной line
на самом деле This is a \"sample\"
, то вы можете сделать line.Replace("\\\"", "\"")
.
Если нет: \"
является escape-последовательностью. в коде он отображается как \"
, однако при компиляции он будет отображаться как "
вместо исходного \"
.
Причина выхода из кавычек заключается в том, что компилятор не может определить, находится ли кавычка в другой кавычке или нет. Давайте рассмотрим ваш пример:
"This is a "sample" "
это This is a
как одна группа, затем неизвестный токен sample
, затем еще одна цитата ? или
This is a "sample"
все в цитате? Мы можем сделать предположение, посмотрев на контекст, но компилятор не может. Следовательно, мы используем escape-последовательность, чтобы сказать компилятору: «Я использовал этот символ двойной кавычки в качестве символа, а не закрытие / открытие строкового литерала».
См. Также: https: // en. wikipedia.org/wiki/Escape_sequences_in_C
Scott Gu записал немного сообщений по этой теме:
Инструментарий печати по базе данных SQL Server для веб-хостинга
Сценарии поколения хорошо для создания объектов базы данных, но не для переноса информации о базе данных. Например, определенные для клиента базы данных, где разработчик обязан предварительно заполнять некоторые данные.
Одной из проблем, с которыми я столкнулся с этим, являются новые МАКС. типы в SQL Server 2005 +. (nvarchar (макс.), varchar (макс.), и т.д.), Конечно, это хуже при фактическом использовании Sql Server Express которая не позволяет, чтобы экспорт кроме создания собственных сценариев создал данные.
Я рекомендовал бы переключиться на хостинговую компанию, которая позволяет Вам иметь способность к файлам резервных копий FTP и НЕ требует, чтобы Вы использовали свои собственные сценарии. Это - смысл SQL Server, правильно? Обеспечить больше инструментов, которые являются более дружественными по отношению к использованию. Если хостинговая компания устраняет это, можно также переместиться в MySql для ее простоты в дампе информации.
WebHost4Life является жизненным средством сохранения в этой категории. Они предлагают FTP серверу базы данных для загрузки файла резервной копии или MDF и файлов LDF для вложения! Я был так расстроен, когда я видел, что GoDaddy имел подобное ограничение, которое Вы упомянули. Их инструмент не сказал мне, что это был плохой импорт, и я не мог выяснить, почему мой сайт возвращался с 500 ошибками.
Еще одно примечание: я не уверен, который считают более безопасным. Я включил внешние соединения в GoDaddy и соединился с Studio управления, и я смог видеть каждую базу данных по тому серверу! Я не мог получить доступ к ним, но у меня теперь есть та информация. Двойной удар - то, что GoDaddy требует, чтобы имя пользователя для DB совпало с DB! теперь все, что необходимо сделать, является паролями спама против тех сотен DBS!
Webhost4life, с другой стороны, имеет только Вашу определенную базу данных, показанную в Studio управления. И они позволяют Вам выбрать свое собственное имя DB и имя пользователя, независимое друг от друга. Они только добавляют тот же уникальный идентификатор на конце пользователя и имен дб, чтобы помешать им конфликтовать с другими.
Вы не должны полагаться на восстановление резервных копий для копирования / передача баз данных. Необходимо использовать сценарии - доверяют мне, Вы поправитесь в нем.
Я использовал инструменты RedGate Compare с общим хостингом, и он работает хорошо.
Сценарии поколения базы данных грязны, но у них также есть несколько преимуществ, что... хорошо, сделайте боль более терпимой.
Во-первых при обработке сценариев DB как реальных задач программирования в и себя можно инкапсулировать беспорядок. При генерации сценария однажды (использование инструмента базы данных), можно разделить аспекты структуры таблицы от ограничительных аспектов (ключи, индексы, и т.д.). Точно так же можно экспортировать данные однажды, но разделить их они на "системные" данные, это не часто изменяется, но необходимо для корректной операции (материал как налог или фрахтовые ставки, и т.д.), 'тестовые' данные, это - легко идентифицируемые, и 'операционные' данные, которые должны быть перемещены от версии DB, Старой к Новой версии DB (Заказы прошлой недели).
Спустя первые 3 минуты после выполнения этого вещи замечательны: можно повторно создать новую базу данных с или без данных тестирования через несколько минут. К сожалению, после 3 минут, базы данных вне синхронизации, по крайней мере, с точки зрения данных, если не совсем как часто с точки зрения структуры.
Мне лично нравится иметь структуру каждой таблицы как отдельный файл SQL (и это - ограничения как отдельный файл в отдельном каталоге, и это - данные тестирования в одном файле, это - системные данные в другом, и т.д.). С одной стороны, это означает, что несколько различных файлов должны быть затронуты при внесении изменения, но с другой стороны, оно делает намного легче видеть гранулярность того, что было изменено: это в порядке там в журналах управления версиями. (Я мог, вероятно, быть убежден, что много-файлы являются ошибочной стратегией...),
Все это утверждено при условии, что Вы имеете некоторое средство для того, чтобы на самом деле запустить сложный скрипт, включающий много файлов, и только ограничиваетесь к некоторой Веб-панели управления, которая может быть тем, что Вы описываете, когда Вы говорите, что "нам не предоставляют доступ к фактической машине". Я чувствую, что Вы не можете сделать разработки заказного программного обеспечения и не иметь некоторый доступ оболочки на сервере; бизнес хостинга достаточно конкурентоспособен, что можно, конечно, найти благоприятный для сценария хост достаточно легко.