Почему мой datagridview.rowfilter не работает.Я получаю сообщение об ошибке синтаксиса - PullRequest
0 голосов
/ 26 февраля 2010

Мое приложение имеет заполненную таблицу данных и связывает его с ddatagridview, задав свойство источника данных.

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

dataManager.VDMSTables.DataTable.DefaultView.RowFilter = column + " LIKE '%" + criteria + "%'";

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

Синтаксическая ошибка: отсутствует операнд после оператора «Данные». Переменные, которые я использую для построения фильтра строк, заполнены правильно. Даже когда я жестко кодирую строку, я все равно получаю ту же ошибку. Почему?

1 Ответ

2 голосов
/ 26 февраля 2010

Как выглядит создаваемая вами строка при просмотре в отладчике? Слово «Данные» там не отображается, не так ли?

Если это так, то это говорит о том, что Данные - это зарезервированное слово, и вам необходимо пометить его как таковое. Как в:

dataManager.VDMSTables.DataTable.DefaultView.RowFilter 
    = String.Format("[{0}] LIKE '%{1}%'"
        , column
        , YourSingleQuoteEscape(criteria) );

Это даст:

"[Data] like '%strawberries%'"

... который должен правильно анализироваться для вашего RowFilter.

...