Экранирование специальных символов для SQL Server CE в C # - PullRequest
0 голосов
/ 04 февраля 2011

Я использую старый веб-сервис, который имеет некоторые проблемы с обработкой специальных символов, в частности, апостроф ' и скобки []. Предполагаемый способ обойти это - просто экранировать символы перед их отправкой в ​​веб-службу, но есть ли встроенная функция в стандартной библиотеке C # или библиотеках SQL Server Compact Edition, которая сделает это для меня?

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

String escaped = Obj.some_escape_function(original_string);

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Я использую это для вставки / обновления (msaccess, mysql, mssql), возможно, что для конкретной DDBB можно оптимизировать.

public static class Obj
{
  //....
  public static string FtCad(string ci)
  {
    return Regex.Replace(ci, @"[\r\n\\'""]", @"\$0");
  }

}

//And when need:
string fieldcad = Obj.FtCad(Text1.text);
0 голосов
/ 14 марта 2011

http://www.the -art-of-web.com / JavaScript / бежать /

http://www.orafaq.com/faq/how_does_one_escape_special_characters_when_writing_sql_queries

Вы можете использовать регулярные выражения для удаления специальных символов.

public string RemoveSpecialCharacters(string str)
{
    return Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled);
}
...