2013-12-02 7 views
2

Может быть, это глупый вопрос, или, может быть, я разработал мой код совершенно неправильно, но так или иначе, вот мой вопрос ...DataColumn.Expression RowFilter на DataView

У меня есть «динамический» SQL-запрос, где его невозможным возьмите все параметры, которые мне нужны для параметризации запроса, поэтому я получаю свои данные и помещаю их в dataview, и после этого я ищу строки, которые хочу показать в dataview.

Один из столбцов - это столбец с именем id. Id - это первичный ключ и auto_increment в таблице, и поэтому это int.

Теперь, к моему вопросу, я хочу представить весь мой сопоставимый идентификатор с номером, который пользователь вложил в мое текстовое поле. Скажем, мой идентификатор состоит из 5 номеров, а пользователь первым поставил 4, а затем в идеальном мире у меня было бы 10 совпадений (например, 12340-12349). Выполнение этого в строке очень просто с использованием RowFilter и оператора LIKE в сочетании с шаблоном. Но как я могу сделать что-то подобное по целым числам? Должен ли я преобразовать его в строки и не испортить выражение rowfilter?

Не жить или смерти ситуации ... им более интересно, если лед им ходить очень тонкая ... :)

ответ

2

RowFilter expression поддерживает конвертирование функцию, так что технически можно преобразовать целочисленный идентификатор в строку для выполнения команды LIKE:

MyDataView.RowFilter = "Convert(ID, 'System.String') LIKE '1234*'"; 

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

+0

отлично, только то, что я искал! :) Большое спасибо! – chrillelundmark

Смежные вопросы