Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать фильтер? 
:(
    Опции темы
Feller
Дата 22.11.2010, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



Помогите сделать фильтер.Я попробовал но не получается,выдается ошибка.
Код

 frmFind.DTEmployee.Columns("EmployeeID").Expression = "EmployeeID = 23"
 frmFind.DVEmployee = frmFind.DTCustomers.DefaultView
 frmFind.dgEmployee.DataSource = frmFind.DVEmployee

Суть в том что ввести в форму фильтра данные id,дата рождения и.т.д ,и при нажати на кнопку применить от фильтровать datagrid.
PM MAIL   Вверх
diadiavova
Дата 22.11.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Вот здесь подобный вопрос
http://forum.vingrad.ru/forum/topic-314610/kw-combobox.html
Там правда комбобоксы, но решение проблемы такое же.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Feller
Дата 22.11.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



diadiavova, Большое спасибо очень помогло. smile 
Код

 Dim BSFilter As New BindingSource()
        frmFind.DVCustomers = frmFind.DTCustomers.DefaultView
        BSFilter.DataSource = frmFind.DVCustomers
        BSFilter.Filter = "EmployeeID = 2"
        frmFind.dgCustomers.DataSource = BSFilter

А почему через BindingSource(), ведь DataView() предназначен для фильтрации и сортировки?
А как сделать что когда поле не заполнено то пониму не надо фильтровать,а когда заполнено то надо?
Как сделать чтоб фильтровал по промежутку дат?
Как уместить всё это в эту строчку 
Код
BSFilter.Filter = "EmployeeID = 2"
?



Это сообщение отредактировал(а) Feller - 22.11.2010, 21:16
PM MAIL   Вверх
diadiavova
Дата 22.11.2010, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Feller @  22.11.2010,  21:15 Найти цитируемый пост)
А почему через BindingSource(),

Это удобный компонент для этих целей.
Цитата(Feller @  22.11.2010,  21:15 Найти цитируемый пост)
А как сделать что когда поле не заполнено то пониму надо фильтровать,а когда заполнено то надо?

Не понял.

Цитата(Feller @  22.11.2010,  21:15 Найти цитируемый пост)
Как сделать чтоб фильтровал по промежутку дат?
Как уместить всё это в эту строчку 

Строка фильтра похожа на инструкцию WHERE в SQL-запросе. То есть для промежутка дат вроде поддерживается BETWEEN...AND, а несколько условий можно объединять с помощью логических операторов. Все есть в документации по свойству и ссылка на документацию есть в упоминавшейся теме.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Feller
Дата 23.11.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



Не работает говорит что после слова between что-то пропустил

diadiavova, 
Код

BSFilter.Filter = "BirthDate= Between '" & BirthDateDateTimePicker.Value & "'And'" & DateTimePicker2.Value & "'"

PM MAIL   Вверх
diadiavova
Дата 23.11.2010, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Во-первых после BirthDate не нужно знака равенства, во-вторых даты выделяются не кавычками, а #, а в третьих ты там еще и пробел перед AND пропустил.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Feller
Дата 23.11.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



diadiavova, 
Код

 BSFilter.Filter = "BirthDate Between '" & BirthDateDateTimePicker.Value & "' And '" & DateTimePicker2.Value & "'"

Выдаёт ошибку Выражение содержит не поддерживаемый оператор "Between".
Если вместо кавычек поставлю #.
Код

 BSFilter.Filter = "BirthDate Between #" & BirthDateDateTimePicker.Value & "# And #" & DateTimePicker2.Value & "#"


Выдаёт ошибку Строка не распознана как действительное значение DateTime.

PM MAIL   Вверх
diadiavova
Дата 23.11.2010, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Документация по синтаксису здесь
http://msdn.microsoft.com/ru-ru/library/sy...expression.aspx
Если битвин не поддерживается, значит используй больше и меньше и объединяй их оператором AND.
По дате пример из той же документации
Код

Birthdate < #1/31/82#



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Feller
Дата 23.11.2010, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



diadiavova, Получился этот вариант. smile 
Код

BSFilter.Filter = "BirthDate >= '" & BirthDateDateTimePicker.Value & "' And BirthDate <= '" & DateTimePicker2.Value & "'"

А как сделать что когда какое нибудь из полей незаполнено например lastname.text то к этому полю не применялся фильтер,а по остальным которые заполнены применялся?

Это сообщение отредактировал(а) Feller - 23.11.2010, 21:58
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.