如何从数据表中选择数据

时间:2014-05-19 04:24:59

标签: asp.net datatable

我的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();
}

2 个答案:

答案 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");