powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
7 сообщений из 7, страница 1 из 1
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36936509
ioannov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь фильтровать данные в BindingSource.Filter.
Суть проблемы в том, что не получается "Оторвать" от даты в базе и сравнить с чем-то внешним.
Ищу решение примерно следующего синтаксиса:
BindingSource.Filter = "Year([DataBaseField]) = " + TextBox.Text;
Использую C#
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36939388
=NIk=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioannovПытаюсь фильтровать данные в BindingSource.Filter.
Суть проблемы в том, что не получается "Оторвать" от даты в базе и сравнить с чем-то внешним.
Ищу решение примерно следующего синтаксиса:
BindingSource.Filter = "Year([DataBaseField]) = " + TextBox.Text;
Использую C#

а в селекте каст использовать и возвращать примеров много найдешь.
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36939503
ioannov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
=NIk=ioannovПытаюсь фильтровать данные в BindingSource.Filter.
Суть проблемы в том, что не получается "Оторвать" от даты в базе и сравнить с чем-то внешним.
Ищу решение примерно следующего синтаксиса:
BindingSource.Filter = "Year([DataBaseField]) = " + TextBox.Text;
Использую C#

а в селекте каст использовать и возвращать примеров много найдешь.
К сожалению я не уверен, что понял Вас. Я разрешил вопрос, заранее подготовив дополнительный столбец в БД, но мне кажется, что было бы правильней использовать какие-то возможности в Filter и просто получить из даты необходимый мне кусок с даты. Таким бы образом обработка происходила на стороне клиента и уменьшился бы трафик.
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36939511
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioannov...Таким бы образом обработка происходила на стороне клиента и уменьшился бы трафик.
Создавая столбец и получая на клиенте (!)все данные, а потом их фильтруя Вы не уменьшаете трафик, а очень существенно его увеличиваете. Так делать нельзя. Фильтруйте всё в запросе. Смотрите datepart для MS SQL.
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36939553
=NIk=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioannov =NIk=

а в селекте каст использовать и возвращать примеров много найдешь.
К сожалению я не уверен, что понял Вас. Я разрешил вопрос, заранее подготовив дополнительный столбец в БД, но мне кажется, что было бы правильней использовать какие-то возможности в Filter и просто получить из даты необходимый мне кусок с даты. Таким бы образом обработка происходила на стороне клиента и уменьшился бы трафик.
cast(EXTRACT(MINUTE FROM ts.srvtime) as integer)
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36939841
ioannov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergedatepart
Я пользуюсь Oracle и отделял год через to_char :
Код: plaintext
select to_char(sysdate,'YYYY') from dual
ShSerge Создавая столбец и получая на клиенте (!)все данные, а потом их фильтруя Вы не уменьшаете трафик, а очень существенно его увеличиваете
Вероятно не правильно выразился и понят был не так. Да, то что загружать все данные, а после их фильтровать не является лучшим вариантом я абсолютно согласен. Но в тоже время, если у меня данные фильтруются во время ввода в строку поиска, постоянно подавать запросы в БД - тоже не выход. Насколько мне известно, то BindingSource самостоятельно кеширует данные и в состоянии в той или иной грамотной мере принять решение когда нужно подгрузить часть данных, а когда воспользоваться теми, что уже были кешированы. Потому и был проявлен интерес к реализации задуманного через Filter в BindingSource. Во всяком случае посмотреть на результат и принять решение.
=NIk= cast(EXTRACT(MINUTE
"говорит" таких команд нет в Filter.
...
Рейтинг: 0 / 0
C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
    #36941515
=NIk=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioannov,

сast(EXTRACT(MINUTE FROM ts.srvtime) as integer) as Filter это в запрос.

Насколько мне известно, то BindingSource самостоятельно кеширует данные и в состоянии в той или иной грамотной мере принять решение когда нужно подгрузить часть данных, а когда воспользоваться теми, что уже были кешированы. Потому и был проявлен интерес к реализации задуманного через Filter в BindingSource. Во всяком случае посмотреть на результат и принять решение.

сделать калькулирующие поле нельзя, по которому потом фильтровать, Filter?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C#. BindingSource.Filter взять от значения БД часть даты (Год, месяц или день) и сравнить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]