I have been working on asp.net 3.5.I want to Convert a DateTime Data from sqldatareader to a String on "dd-MM-yyyy"
Format.
But when I use "dd-MM-yyyy"
formatting parameter as "rdMonthlyLeave["LEAVE_DATE"].ToString("dd-MM-yyyy")"
browser returns compile error as
Compiler Error Message: CS1501: No overload for method 'ToString' takes '1' arguments
Do you have a solution?
You need to cast it to DateTime
first:
DateTime leave = (DateTime) rdMonthlyLeave["LEAVE_DATE"];
DoSomethingWith(leave.ToString("dd-MM-yyyy"));
or just
((DateTime)rdMonthlyLeave["LEAVE_DATE"]).ToString("dd-MM-yyyy")
The return type of the DataReader indexer is just object
, and object
doesn't have an overload of ToString
which takes a string. Don't forget that overloading is a compile-time decision - the compiler picks the appropriate method with a compatible signature, and only overriding occurs based on the execution-time type. In this case there is no overload of ToString
with a compatible signature, so you get a compile-time error.
来源:https://stackoverflow.com/questions/5216486/no-overload-for-method-tostring-takes-1-arguments-error-occur-while-format