C# 尝试在 RowFilter 中按日期过滤(报告)

C# Trying to filter by date in RowFilter (Reporting)

我正在尝试按在两个日期时间选择器中选择的日期进行过滤。 当我调试程序时,它以代码 "Access Violation"

退出
filter = "date > #"+desde_dateTimePicker.ToShortDateString()+"# AND date < #"+hasta_dateTimePicker.Value.ToShortDateString()+"#";

this.DataTable1TableAdapter.Fill(this.DataSet1.DataTable1);
this.DataSet1.DataTable1.DefaultView.RowFilter = filter;
DataTable1BindingSource.DataSource = this.DataSet1.DataTable1.DefaultView;
this.reportViewer1.RefreshReport();

如果我在过滤器字符串中手动写入日期,它会起作用。

根据此处,您需要以特定方式设置日期格式。

http://www.csharp-examples.net/dataview-rowfilter/

dataView.RowFilter = "Date = #12/31/2008#"          // date value (time is 00:00:00) 
dataView.RowFilter = "Date = #2008-12-31#"          // also this format is supported 
dataView.RowFilter = "Date = #12/31/2008 16:44:58#" // date and time value

dataView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
                     "Date = #{0}#", new DateTime(2008, 12, 31, 16, 44, 58));

当您使用 .ToString 方法时,这取决于您的区域设置,这可能不正确。