3

DataView RowFilter次のように、DataType "TimeSpan" の列にを使用しようとしました。

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

検索パラメーター"%17% or %12%、二重ゼロの場合、単一のものを使用する必要があることがわかりました: %0% は正常に機能しますが、今はConvert(timespan, System.String)フォーマットについてわかりません... . orTimeSpanのような特別なフォーマットがあることは知っていますが、文字列への変換が指定されていないため、次のようにする必要があります。(17,12,0){17}{12}{0}hh:mm:sstimespan.ToString()DataView's

.NET 3.5 で Visual Studio 2008 Pro を使用しています。

4

2 に答える 2

2

問題は文字列への変換にあります。非常に奇妙な方法でフォーマットされた文字列を生成します。説明のために、次の 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')";

これをグリッド コントロールに割り当てると、次のようになります。

ここに画像の説明を入力

Microsoft 自身のドキュメントでは、Expressionドキュメントを見Convert(span, 'System.String')て、RowFilter. これは、TimeSpan をスクリーンショットに表示されているものに正確に変換することを意味します -01:02:03になりPT1H2M3Sます。

于 2016-10-27T13:39:47.777 に答える