c# - WPF:如何只从文本框中获取时间?

标签 c# sql-server wpf datetime textbox

我有一个数据表,其中有一列 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/

相关文章:

c# - 新打开的窗口打开但立即关闭

c# - 在 .NET 的 MySQL 查询中使用 CONCAT

c# - 如何从 C++ 下标运算符所在的类中访问它?

sql - 序数使用哪种数据类型?

c# - 在类库中使用 Caliburn Micro

C# 如何从 .t​​xt 文件创建数组

sql-server - 从 Visual Studio 2010 创建 .MDF 文件时出现问题

sql - 计算两个表中行之间的重合次数

c# - WPF 应用程序中的 SendKeys.Send 方法

c# - 如何在代码中读取对象的 DependencyProperty?