@ Ismail: было бы неплохо, если бы мы проверяли вводимые пользователем данные перед их использованием в запросах переднего плана или в запросах внутреннего уровня.
Так что я думаю, что в вашем сценарии у вас должна быть функция, подобная ...
if(ValidateInput(userInput))
{
DataRow[] rows = dataTable.Select("FieldName='"+ userInput + "'");
}
и при проверке вы можете сделать любую проверку. Прямо сейчас вы хотите только проверить, но в будущем, возможно, вам придется проверить что-то еще.
и, в зависимости от ваших потребностей, вы можете проверить тип возвращаемой функции проверки, если вы хотите изменить входные данные, то измените и верните эти данные, просто вернув bool.
Если вы хотите использовать DataTable.Select (фильтр) для фильтра данных, вам придется форматировать / игнорировать или заменять специальный символ из оператора фильтра, и для этого вам нужно будет написать больше кода. Если вы не хотите паниковать из-за специального символа, вы можете использовать LINQ, например
DataTable dataTable = new DataTable();
DataColumn dc = new DataColumn("FieldName");
dataTable.Columns.Add(dc);
DataRow dr = dataTable.NewRow();
dr[0] = "D'sulja";
dataTable.Rows.Add(dr);
string input = "D'sulja";
var result = from item in dataTable.AsEnumerable()
where item.Field<string>("FieldName") == input select item;