具有 TimeSpan 数据类型的 DataView RowFilter

2024-02-01

我尝试使用DataView RowFilter对于数据类型为“TimeSpan”的列,如下所示:

dv.RowFilter = ("Convert([time],System.String) LIKE '17:12:00'")

我发现搜索参数"%17% or %12%,对于双零,我必须使用单个零:%0%,工作正常,现在我不确定Convert(timespan, System.String)格式... 。 我知道TimeSpan有一个特殊格式,例如(17,12,0) or {17}{12}{0}但作为未指定的字符串转换,它应该是:hh:mm:ss like timespan.ToString()- 但随着DataView'sRowFilter 我无法让它工作!

我正在使用 Visual Studio 2008 Pro 和 .NET 3.5。


问题在于转换为字符串。它生成一个以非常奇怪的方式格式化的字符串。为了说明这一点,让我们使用以下 C# 代码创建一个表:

        var table = new DataTable();
        table.Columns.Add("span", typeof(TimeSpan));
        table.Rows.Add(new object[] { new TimeSpan(1, 2, 3) });
        table.Rows.Add(new object[] { new TimeSpan(4, 5, 6) });
        table.Columns.Add("asstring");
        table.Columns["asstring"].Expression = "Convert(span, 'System.String')";

当我们将它分配给网格控件后,它将如下所示:

在微软自己的文档中,他们说要看看Expression文档看看如何Convert(span, 'System.String')工作于RowFilter。这意味着它将 TimeSpan 转换为您在屏幕截图中看到的内容 -01:02:03变成PT1H2M3S.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有 TimeSpan 数据类型的 DataView RowFilter 的相关文章

随机推荐