Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'No overload for method 'ToString' takes '1' arguments' error occur While Formatting Datetime Field To String ON "dd-MM-yyyy" format

Tags:

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?

like image 879
netraThapa Avatar asked Mar 07 '11 06:03

netraThapa


1 Answers

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.

like image 149
Jon Skeet Avatar answered Oct 07 '22 01:10

Jon Skeet