C# 方法“无过载;ToString”;在c中接受1个参数#

C# 方法“无过载;ToString”;在c中接受1个参数#,c#,date,C#,Date,我有一个数据读取器,可以从数据库中读取2014-07-01格式的日期 我想以2014年7月的格式显示日期 代码是一个链接: <asp:Label ID="Month" runat="server" Text='<%# Eval("Month").ToString("MMMM yyyy") %>'></asp:Label> 这让我开始相信我的整体结构是不正确的 我错过了什么 代码怎么了 如果您能为我解决这个问题提供任何帮助,我将不胜感激。您需要知道E

我有一个数据读取器,可以从数据库中读取2014-07-01格式的日期

我想以2014年7月的格式显示日期

代码是一个链接:

<asp:Label ID="Month" runat="server" 
    Text='<%# Eval("Month").ToString("MMMM yyyy") %>'></asp:Label>
这让我开始相信我的整体结构是不正确的

我错过了什么

代码怎么了


如果您能为我解决这个问题提供任何帮助,我将不胜感激。

您需要知道Eval()返回的类型,即object。类型对象没有带任何参数的ToString()。然而,DateTime确实如此

因此,首先将“月”强制转换为日期时间,然后使用日期时间格式字符串调用ToString()

Convert.ToDateTime(Eval("Month")).ToString("MMM yyyy")

Eval
的返回类型是什么?.NET Framework版本是版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.1,在windows server 2003上。Eval的返回类型是2014-072014-07,在我看来不是类型。“返回类型”并不表示“返回值”。什么类型的?如果是
object
,请注意
object.ToString()
没有带参数的重载。或者,避免强制转换:
string.Format(“{0:MMM yyyy}”),Eval(“Month”)
Compiler Error Message: CS1501: 
No overload for method 'ToString' takes 1 arguments
Convert.ToDateTime(Eval("Month")).ToString("MMM yyyy")