Если данные в вашем источнике данных не относятся к типу DateTime
, то это должно быть так, поэтому вы должны сначала предпринять шаги, чтобы исправить это. Затем вы можете применить любое желаемое форматирование в сетке, установив свойство .DefaultCellStyle.Format
столбца.
Когда у вас действительно есть данные правильного типа, вы можете правильно их отфильтровать в соответствии с документацией. Фактическая фильтрация Dates
будет выглядеть следующим образом:
DataSource2Grid.Filter = String.Format("DataHoraPartida >= #{0:M/dd/yyyy}#' AND DataHoraPartida <= #{1:M/dd/yyyy}#", DateTimePicker1.Value, DateTimePicker2.Value)
DateTime
литералы ВСЕГДА разделены символами #
, и они ВСЕГДА отформатированы с использованием формата даты США, т.е. M/dd/yyyy
. Также нет смысла указывать свойство Date
двух значений, потому что формат уже отбрасывает время. Я также рекомендовал бы использовать строковую интерполяцию вместо String.Format
в большинстве случаев, если вы используете VB 2015 (я думаю, или это может быть 2017) или более поздней версии:
DataSource2Grid.Filter = $"DataHoraPartida >= #{DateTimePicker1.Value:M/dd/yyyy}#' AND DataHoraPartida <= #{DateTimePicker2.Value:M/dd/yyyy}#"