gpt4 book ai didi

c# bindingsource 按日期时间过滤

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:53 24 4
gpt4 key购买 nike

我遇到的问题是过滤器不接受日期时间的时间部分。

为了清楚起见,

这有效。

" AND NextWorkDate <= #" + DateTime.Now.AddDays(1).ToString("dd.M.yyyy") + "#"

这行不通。

" AND NextWorkDate <= #" + DateTime.Now.AddDays(1).ToString("dd.M.yyyy H:mm:ss") + "#"

每当我尝试包含日期时间的时间方面时,过滤器就不起作用,它不返回任何行。

我已经尝试了一千种不同的方法,但我真的想不通为什么它不会花费该死的时间。

过滤器所比较的数据源列是格式为 dd.M.yyyy H:mm:ss 的日期时间。

数据库列的格式完全不同,如 yyyy-mm-dd hh:mm:ss:fff

这会不会导致一些问题?我认为这不是因为过滤器应用于数据源,而不是数据库。

最佳答案

缺少documentation如何按时间而不是仅按日期过滤 BindingSource(或 DataTable、DataView 等)。

但这种格式应该有效:

"AND NextWorkDate <= #yyyy-MM-dd HH:mm:ss#"  

您可以通过 DateTime.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) 获取此格式。

string filter = string.Format("...AND NextWorkDate <= #{0}#",
DateTime.Now.AddDays(1).ToString(
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture));

但是,我更喜欢 Linq,因为它更具可读性、可维护性和更强大。所以你可以用 linq 过滤底层列表。如果您使用 DataTable,请使用 Linq-To-DataSet,否则使用 Linq-To-SqlLinq-To-Entities 查询数据源或 Linq-To-Objects 如果它只是一个内存列表。然后您只需重新分配 DataSource

关于c# bindingsource 按日期时间过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17483256/

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