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 方法时,这取决于您的区域设置,这可能不正确。
我正在尝试按在两个日期时间选择器中选择的日期进行过滤。 当我调试程序时,它以代码 "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 方法时,这取决于您的区域设置,这可能不正确。