我有一个数据表,其中有一列 Total time active:Total
我想在最小和最大时间上进行过滤,例如仅显示 00:02:00 和 00:30:00 之间的事件时间。我的存储过程使用这些开始和结束时间进行过滤。
在我的 WPF 应用程序中,我有一个文本框,我想用它来过滤上述表格。
(注意,这些时间不是一天中的一般时间,我可能超过 24 小时。)
我发现我需要将文本框字符串转换为 DateTime,但我不确定如何执行此操作,因为我对数据库和 WPF 还很陌生。 在 xaml 中,我尝试使用:
<TextBox x:Name="Activefrom"
Text="{Binding Path=TotalStart, StringFormat=' HH:mm:ss '}"/>
并且在转换字符串的代码隐藏中:
DateTime dateTimeStart = DateTime.ParseExact(Activefrom.Text, "HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
但是我得到了错误:
System.FormatException: 'String was not recognized as a valid DateTime.'
因为时间超过 24 小时,我不确定是否应该使用 DATETIME
但我还是尝试了,因为在这种情况下表不会超过 24 小时。
如何将文本框绑定(bind)为 Time
以便我可以使用我的 SP 仅按时间过滤数据表
最佳答案
听起来你应该看看 TimeSpan结构而不是日期时间。此外,我可能会将输入拆分为一个文本框用于小时数和一个文本框用于分钟数(取决于数据中持续时间的范围)。
关于c# - WPF:如何只从文本框中获取时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54423842/