我的datatable
包含列" 日期"在下面的
'2013-01-01',
'2013-05-01',
'2014-01-01',
'2014-12-25',
'2014-12-26
但我希望获得类似' select distinct year(Date)
'的数据,并将所选数据绑定到下拉列表中
但是,语法错误消息弹出:" Syntax error: Missing operand after 'year' operator.
"
我可以获得任何支持吗?致谢!!!!
private DataTable BuildDT(string [] date)
{
DataTable dt = new DataTable("test");
dt.Columns.Add("RowID", typeof(Int16));
dt.Columns.Add("Date", typeof(DateTime));
for (int i = 0; i < date.Length; i++)
{
dt.Rows.Add(i+1,date[i]); // {1,2013-01-01}
}
return dt;
}
private void ddlGetData2(DataTable table)
{
table.DefaultView.RowFilter = "distinct year(Date)";
DropDownList1.DataSource = table;
DropDownList1.DataBind();
}
答案 0 :(得分:2)
您可以使用LINQ ...
执行此操作var years = table.AsEnumerable()
.Select(r => r.Field<DateTime>("Date").Year)
.Distinct()
.OrderBy(y => y)
.ToList();
答案 1 :(得分:0)
您可以在关联的DataView
实例上使用.ToTable()
。
var dv = dt.DefaultView;
var distinctDates = dv.ToTable(true, "Date");