2013-09-03 2 views
5

У меня есть два DataView, которые я пытаюсь сортировать, в dgtest1 Я пытаюсь исключить данные, содержащие Typeid != 25 и в dgtest2. Я пытаюсь показать только данные, где Typeid == 25.Строка DataView Фильтрация

Когда я пошагово кода я метание ошибки повторяла

«Невозможно интерпретировать маркер„!“ в позиции 6 ".

Может ли кто-нибудь показать мне, как правильно использовать фильтр строк?

Параметры (Таблица данных таблицы, строка RowFilter, строка сортировки, DataViewRowState)

dgtest1.ItemsSource = new DataView(dttest1, "Typeid!= 25", "", DataViewRowState.CurrentRows); 
dgtest2.ItemsSource = new DataView(dttest1, "Typeid == 25", "", DataViewRowState.CurrentRows); 
+0

Используйте '<>' для "не равно". – Styxxy

ответ

6

Правильный синтаксис, используемый для выражения RowFilter в первом конструктор DataView является

dgtest1.ItemsSource = new DataView(dttest1, "Typeid <> 25", "", DataViewRowState.CurrentRows); 
                ^^ 

в второй необходимо использовать

dgtest2.ItemsSource = new DataView(dttest1, "Typeid = 25", "", DataViewRowState.CurrentRows); 

Синтаксис us ред для параметра RowFilter в конструкторе DataView такая же используется для свойства Expression в DataColumn, и это не так, как оператор равенства C#

EDIT Этот ваш комментарий ниже. Если TypeID этого поля базы данных текстового типа данных, то вам необходимо заключить значение, используемое в RowFilter одинарных кавычек

dgtest1.ItemsSource = new DataView(dttest1, "Typeid <> '25'", "", DataViewRowState.CurrentRows); 
dgtest2.ItemsSource = new DataView(dttest1, "Typeid = '25'", "", DataViewRowState.CurrentRows); 

Однако это кажется немного странным. Если поле Typeid содержит числа, оно должно быть определено как числовой тип данных.

+0

, когда я использую синтаксис, я получаю следующую {«Не могу выполнить» <> 'операцию в System.String и System.Int32. "} – Robert

+0

, если TypeID является строкой (в базе данных), тогда вам нужно использовать кавычки вокруг значения , Но что-то здесь не кажется правильным. Вы уверены, что TypeID является полем вашей таблицы? – Steve

+0

Дополнительная информация, когда sql возвращает данные, я выгружаю их в dttest1 – Robert

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