Asp.net 如何从datatable中选择数据
MyAsp.net 如何从datatable中选择数据,asp.net,datatable,Asp.net,Datatable,Mydatatable包含列“Date”,其数据如下所示 '2013-01-01', '2013-05-01', '2014-01-01', '2014-12-25', '2014-12-26 但我希望获得类似“选择不同的年份(日期)”的数据,并将所选数据绑定到dropdownlist中 但是,会弹出语法错误消息:“语法错误:“year”运算符后缺少操作数。” 我能得到任何支持吗?谢谢 private DataTable BuildDT(string [] date) { DataTa
datatable
包含列“Date”,其数据如下所示
'2013-01-01',
'2013-05-01',
'2014-01-01',
'2014-12-25',
'2014-12-26
但我希望获得类似“选择不同的年份(日期)
”的数据,并将所选数据绑定到dropdownlist中
但是,会弹出语法错误消息:“语法错误:“year”运算符后缺少操作数。
”
我能得到任何支持吗?谢谢
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();
}
私有数据表BuildDT(字符串[]日期)
{
数据表dt=新数据表(“测试”);
添加(“RowID”,typeof(Int16));
添加(“日期”,类型(日期时间));
for(int i=0;i
您可以使用LINQ
var years = table.AsEnumerable()
.Select(r => r.Field<DateTime>("Date").Year)
.Distinct()
.OrderBy(y => y)
.ToList();
var years=table.AsEnumerable()
.选择(r=>r.字段(“日期”).年)
.Distinct()
.OrderBy(y=>y)
.ToList();
您可以在关联的数据视图
实例上使用
var dv = dt.DefaultView;
var distinctDates = dv.ToTable(true, "Date");
为了补充这一点,我看了一下:如果我替换“
table.DefaultView.RowFilter=”distinct year(Date)”,就看不到对distinct的任何引用,因为它是RowFilter支持的表达式代码>“按上述行”错误提示“指定的强制转换无效。
”您能提供更多帮助吗?Thx刚刚注意到Date列是一个DateTime
,但是它被字符串
s填充。您希望它是string
s还是DateTime
s?我想应该是DateTime
而不是dt.Rows.Add(i+1,date[i])代码>,请在插入数据表之前尝试将其转换为日期dt.Rows.Add(i+1,DateTime.ParseExact(date[i],“yyyy-MM-dd”,CultureInfo.InvariantCulture);