'格式化日期时间字段为字符串'dd-MM-yyyy'格式时,方法'ToString'没有重载'1'参数'错误

时间:2011-03-07 06:18:18

标签: asp.net datetime tostring

我一直在研究asp.net 3.5。我想将一个DateTime数据从sqldatareader转换为"dd-MM-yyyy"格式的字符串。 但当我使用"dd-MM-yyyy"格式参数作为"rdMonthlyLeave["LEAVE_DATE"].ToString("dd-MM-yyyy")"时,浏览器将编译错误返回为

  

编译器错误消息:CS1501:方法'ToString'没有重载需要'1'参数

你有解决方案吗?

1 个答案:

答案 0 :(得分:44)

您需要先将其转换为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重载。不要忘记重载是编译时的决定 - 编译器选择具有兼容签名的适当方法,并且仅基于执行时类型发生覆盖。在这种情况下, 没有带有兼容签名的ToString重载,因此会出现编译时错误。