Корректный путь к символам ESC в Выражении фильтра DataTable

22
задан MoonKnight 3 December 2013 в 15:04
поделиться

2 ответа

Если я заменяю 'двумя единственными' работы запроса.

6
ответ дан Brian Webster 29 November 2019 в 04:54
поделиться

Удалите одинарную кавычку "удвоив ее до" ". Экранируйте символы *% [], заключив их в []. например

private string EscapeLikeValue(string value)
{
    StringBuilder sb = new StringBuilder(value.Length);
    for (int i = 0; i < value.Length; i++)
    {
        char c = value[i];
        switch (c)
        {
            case ']':
            case '[':
            case '%':
            case '*':
                sb.Append("[").Append(c).Append("]");
                break;
            case '\'':
                sb.Append("''");
                break;
            default:
                sb.Append(c);
                break;
        }
    }
    return sb.ToString();
}

public DataRow[] SearchTheDataTable(string searchText)
{ 
     return myDataTable.Select("someColumn LIKE '" 
                                 + EscapeLikeValue(searchText) + "'");
} 

Благодаря примерам здесь

32
ответ дан 29 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: