BeginnerCoderPete Ответов: 1

Bindingsource. filter меняет местами месяц и день, но я не знаю почему?


Это код для моего BindingSource.Фильтр

Dim FilterStartMonth As Date = DateTimePickerTodaysDateTime.Value.Date 
Dim Filter2MonthsBack As Date = DateTimePickerTodaysDateTime.Value.AddMonths(-2).Date 

ClockInTimesBindingSource.Filter = "EmployeeID = " & ComboBoxOfficeEmployeeFilter.SelectedValue & " and Date <= '" & Filter2MonthsBack & "' and Date >= '" & FilterStartMonth & "'"


Когда я прохожу через него шаг за шагом по мере его выполнения это значения:

Filter2MonthsBack = 1/2/2017 12: 00: 00 AM

FilterStartMonth = 3/2/2017 12: 00: 00 AM

Именно так они мне и нужны, но источник привязки.Фильтр считывает:


ClockInTimesBindingSource.Фильтр = "Кодсотрудника = 49 и датой &ЛТ;= '02/01/2017 и дата &ГТ;= '02/03/2017'"

Я не могу понять, почему он меняет местами месяц и день??

Любая помощь будет очень признательна.

Что я уже пробовал:

Dim FilterStartMonth As Date = DateTimePickerTodaysDateTime.Value.Date.ToString("d") 
Dim Filter2MonthsBack As Date = DateTimePickerTodaysDateTime.Value.AddMonths(-2).Date.ToString("d") 

ClockInTimesBindingSource.Filter = "EmployeeID = " & ComboBoxOfficeEmployeeFilter.SelectedValue & " and Date <= '" & Filter2MonthsBack & "' and Date >= '" & FilterStartMonth & "'"


Dim FilterStartMonth As Date = DateTimePickerTodaysDateTime.Value.Date 
Dim Filter2MonthsBack As Date = DateTimePickerTodaysDateTime.Value.AddMonths(-2).Date 

ClockInTimesBindingSource.Filter = "EmployeeID = " & ComboBoxOfficeEmployeeFilter.SelectedValue & " and Date <= '" & Filter2MonthsBack.ToString("d") & "' and Date >= '" & FilterStartMonth.ToString("d") & "'"


Dim FilterStartMonth As Date = DateTimePickerTodaysDateTime.Value.Date.ToString("d") 
Dim Filter2MonthsBack As Date = DateTimePickerTodaysDateTime.Value.AddMonths(-2).Date.ToString("d") 

ClockInTimesBindingSource.Filter = "EmployeeID = " & ComboBoxOfficeEmployeeFilter.SelectedValue & " and Date <= '" & Filter2MonthsBack.ToString("d") & "' and Date >= '" & FilterStartMonth.ToString("d") & "'"

1 Ответов

Рейтинг:
1

Graeme_Grant

Настройки вашей системной культуры обычно отклоняют ToString формат. Вы можете проверить это, выполнив следующие действия:

Dim culture = Globalization.CultureInfo.CurrentCulture
Dim CultureName = culture.Name
Dim shortDateFormatString = culture.DateTimeFormat.ShortDatePattern
Dim longDateFormatString = culture.DateTimeFormat.LongDatePattern
Если вы хотите принудительно форматировать даты, то вы можете передать формиат ToString поскольку он перегружен для поддержки пользовательского форматирования:
Dim reversedDate = Date.Now.ToString("yy-dd-mm") ' 3/2/17 becomes 17-2-3
Подробнее об этом вы можете прочитать здесь: Пользовательские строки формата даты и времени[^]