.net framework 4.0中遇到的问题
我目前有2个下拉列表,其中一个用于选择月份,另一个用于年份选择。
它们的数据源都是来自SQL的数据表,它返回包含年份和月份的行作为列。然后,我使用datatextfield和datavaluefield指定要使用的列。例如:
string sql = "select.... group by...";//the query
DataTable dtMonthYear = db.getDataTable(sql); //got the datatable
ddlMonth.DataSource = dtMonthYear;
ddlMonth.DataTextField = "Month";
ddlMonth.DataValueField = "Month";
ddlMonth.DataBind();
ddlYear.DataSource = dtMonthYear;
ddlMonth.DataTextField = "Year";
ddlMonth.DataValueField = "Year";
ddlYear.DataBind();
因此,年份中将有重复的项目,我希望消除重复的项目。
我发现linq可以做到但不幸的是我的框架只有4.0才能使用datarowextension。这是我得到的链接:LINQ query on a DataTable
任何人都有其他想法吗?
由于
答案 0 :(得分:1)
您可以在.NET 4中使用Linq-To-DataSet
(即使在3.5中):
DataTable years = dtMonthYear.AsEnumerable()
.GroupBy(r => r.Field<int>("Year"))
.Select( g => g.OrderBy(r => r.Field<int>("Month")).First())
.CopyToDataTable();
请注意,您需要添加using System.Linq;