фильтр входной строки - PullRequest
0 голосов
/ 14 мая 2011

Я столкнулся с проблемой фильтрации строк при вставке данных в таблицу.Я имею в виду специальные символы, такие как ' < и т. Д. Я могу сделать простую замену, но мне нужно сохранить исходную последовательность символов.Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 14 мая 2011

Если вы хотите изменить строку с помощью кода, вы можете указать массив символов для удаления из строки.String.Join может использовать метод split, чтобы удалить эти символы и соединить их вместе

    string s = "He<llo;< I -am a $stri-ng;";

    // Add other characters that you deem unacceptable
    char[] invalidChars = { ';', '<', '>', '-' };
    s = String.Join("", s.Split(invalidChars));

С точки зрения сохранения исходной последовательности это очень расплывчато, поэтому я не уверен, что вы имеете в виду, но чтомне приходит в голову использовать базу данных и создать второй столбец, чтобы у вас был один для того, что они ввели, а другой для фиксированного значения.В моей голове появляются два способа управления этим

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

  2. ComputedСпецификация столбца - создайте выражение на основе функции для удаления символов и позвольте столбцу контролировать это значение. Этого достаточно, чтобы избежать риска, добавляемого через триггер.Когда вы модифицируете функцию, так как это вычисляемый столбец, теоретически это значение будет обновлено.(Поправьте меня, если я здесь не прав, не проверено, просто в теории)

Возможно, не самые эффективные подходы, но это то, что я бы использовал с моим текущим набором инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...