私はasp.net 3.5に取り組んでいます。DateTimeデータをsqldatareaderから_"dd-MM-yyyy"
_形式の文字列に変換したいです。しかし、"rdMonthlyLeave["LEAVE_DATE"].ToString("dd-MM-yyyy")"
として_"dd-MM-yyyy"
_フォーマットパラメータを使用すると、ブラウザは次のようなコンパイルエラーを返します。
コンパイラエラーメッセージ:CS1501:メソッド 'ToString'のオーバーロードは '1'引数を取ります
解決策はありますか?
最初にDateTime
にキャストする必要があります:
DateTime leave = (DateTime) rdMonthlyLeave["LEAVE_DATE"];
DoSomethingWith(leave.ToString("dd-MM-yyyy"));
あるいは単に
((DateTime)rdMonthlyLeave["LEAVE_DATE"]).ToString("dd-MM-yyyy")
DataReaderインデクサーの戻り値の型はobject
であり、object
には文字列を受け取るToString
のオーバーロードがありません。 overloadingはコンパイル時の決定であることを忘れないでください。コンパイラは互換性のあるシグネチャを持つ適切なメソッドを選択し、実行時のタイプに基づいてoverridingのみが発生します。この場合、is互換性のあるシグネチャを持つToString
のオーバーロードがないため、コンパイル時エラーが発生します。