C# 如何在DataGridView筛选器中仅获取日期而不获取时间?
我有一个DataGridView,其中一列是日期列,其值如下: 2020年1月21日09:14 2020年1月20日10:15 我想用文本框中的日期输入来过滤这个数据视图 这是我的代码:C# 如何在DataGridView筛选器中仅获取日期而不获取时间?,c#,.net,winforms,C#,.net,Winforms,我有一个DataGridView,其中一列是日期列,其值如下: 2020年1月21日09:14 2020年1月20日10:15 我想用文本框中的日期输入来过滤这个数据视图 这是我的代码: string filter = "1 = 1"; if (date_textBox.Text != "") { try { DateTime inputDate = DateTime.Parse(date_textBox.Text); filte
string filter = "1 = 1";
if (date_textBox.Text != "")
{
try
{
DateTime inputDate = DateTime.Parse(date_textBox.Text);
filter += String.Format(" AND Convert(dateColumn, System.Date) = '{0}'", inputDate.ToShortDateString());
}
catch (FormatException)
{
//Invalid date, do nothing
} //try-catch
} //if
myDataView.RowFilter = filter; // <=========Error in this line
stringfilter=“1=1”;
如果(日期\u textBox.Text!=“”)
{
尝试
{
DateTime inputDate=DateTime.Parse(date\u textBox.Text);
filter+=String.Format(“AND Convert(dateColumn,System.Date)='{0}',inputDate.ToShortDateString());
}
捕获(格式化异常)
{
//无效日期,不执行任何操作
}//试一试
}//如果
myDataView.RowFilter=filter;// 如果必须使用RowFilter,那么这将起作用(我不推荐,但会起作用):
。对,是一个日期时间。解析我的代码中的内容否,过滤器总是以“1=1”开头。然后,如果文本框中有一些text@CR0N0S.LXIII此属性myDataView.RowFilter
接受哪些值?Correcct值,示例?RowFilter
的允许表达式记录在。
if (DateTime.TryParse(date_textBox.Text, out DateTime inputDate))
{
var filter = $" (dateColumn >= '#{inputDate.ToString("yyyy/MM/dd")}#'"+
$" And dateColumn < '#{inputDate.AddDays(1).ToString("yyyy/MM/dd")}#')";
myDataView.RowFilter = filter;
}
var data = tbl.AsEnumerable()
.Where(row => ((DateTime)row["dateColumn"]).Date == inputDate)
.CopyToDataTable();