14

私はかなりばかげているが明らかに難しいことについて頭を悩ませています。

DataView dvFormula = dsFormula.Tables[0].DefaultView;
dvFormula.RowFilter = "'" + startDate.ToString("yyyyMMdd") + "' < EndDate OR EndDate = '19000101'";
dvFormula.Sort = "FromDate ASC";

結果は次のとおりです。

System.String および System.DateTime に対して '<' 操作を実行できません。

この問題を解決する最善の方法を教えてください。

とても有難い!

4

3 に答える 3

26

日付をアポストロフィではなく # で囲む必要があります。

dvFormula.RowFilter = "#" + startDate.ToString("MM/dd/yyyy") + "# < EndDate OR EndDate = #1/1/1900#"; 
于 2010-08-27T13:28:42.973 に答える
11

これが解決策です。これを試して:

filter = " (Date >= #" +
         Convert.ToDateTime(txtFromDate.Text).ToString("MM/dd/yyyy") +
         "# And Date <= #" +
         Convert.ToDateTime(txtToDate.Text).ToString("MM/dd/yyyy") +
         "# ) ";
于 2011-05-25T12:56:56.563 に答える
4

データ プロバイダーによっては、#文字ではなく文字で日付をエスケープする必要がある場合があります'YYYY-MM-DDさらに、日付として正しく認識できるように、日付をフォーマットします。

于 2010-08-27T13:27:49.583 に答える