gpt4 book ai didi

c# - 如何在 DataGridView 过滤器中只获取日期而不是小时?

转载 作者:行者123 更新时间:2023-12-01 15:01:48 26 4
gpt4 key购买 nike

我有一个 DataGridView,其中一列是日期列,其值如下所示:

21/01/2020 09:14

20/01/2020 10:15

我想使用来自文本框的日期输入来过滤此 DataView。

这是我的代码:

 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

我在将筛选器应用于 DataView 时出错,因为它不理解 System.Date。我还尝试过 Date、DateTime、System.DateTime 和此类变体。

那么,我需要将该日期列转换成什么类型​​?或者我可以在 rowFilter 中调用一些只返回日期而不返回时间的函数吗?

最佳答案

如果必须使用 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;
}

如果可以从现有 DataTable 生成过滤后的 DataTable,我更喜欢这种方法:

var data = tbl.AsEnumerable() 
.Where(row => ((DateTime)row["dateColumn"]).Date == inputDate)
.CopyToDataTable();

关于c# - 如何在 DataGridView 过滤器中只获取日期而不是小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59842851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com