使用lambda从DateTime获取年份的不同值

时间:2013-10-22 08:33:09

标签: c# asp.net datetime lambda distinct

我的数据库中有DateTime数据 例如,

ID   Date         Remark
==========================
1    2013-10-22   
2    2013-10-23   
3    2013-10-24   
4    2012-10-01   
5    2012-10-02   

我想要做的是在组合(下拉列表)中绑定年份(2013,2012)的不同值。

<asp:DropDownList runat="server" ID="ddlYear" Width="100%" 
DataValueField="Date"  Font-Size="14px" DataTextField="Date" 
DataTextFormatString="{0:yyyy}" ></asp:DropDownList>

这是我绑定数据源的方式,

ddlYear.DataSourse = db.DBContext.DateTables.Select(x =>   
x.Date.Value.Year).Distinct().ToList();
ddlYear.DataBind();  

但是有一个错误,

  

System.Int32类型的对象没有Date属性。

我该如何解决?

2 个答案:

答案 0 :(得分:3)

<asp:DropDownList runat="server" ID="ddlYear" Width="100%" Font-Size="14px"></asp:DropDownList>

DateTime.Year是Int32而不是DateTime,你不需要格式化它:)

答案 1 :(得分:2)

删除DataValueField="Date"DataTextField="Date"DataTextFormatString="{0:yyyy}"