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

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

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

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

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

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

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


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