'方法“ToString”没有重载;需要“1”论点将日期时间字段格式化为字符串“dd-MM-yyyy”时发生错误格式

发布于 2024-10-21 03:36:57 字数 303 浏览 2 评论 0原文

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

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

您有解决方案吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若能看破又如何 2024-10-28 03:36:57

您需要首先将其转换为 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 重载,因此您会收到编译时错误。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文