我的代码如下,如果这样没有问题:DataSet ds = EC.XmlObject.GetXml(Server.MapPath("../vvvvv/2009123000353/aa.xml"));
DataTable dt = ds.Tables[0];
//按CreateDate排序
EnumerableRowCollection<DataRow> query = from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order; DataView view = query.AsDataView(); GridView1.DataSource = view;
GridView1.DataBind();
但我只想要头两行,更改代码如下:DataSet ds = EC.XmlObject.GetXml(Server.MapPath("../vvvvv/2009123000353/aa.xml"));
DataTable dt = ds.Tables[0];
//按CreateDate排序
EnumerableRowCollection<DataRow> query = (from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order).Take(2); DataView view = query.AsDataView(); GridView1.DataSource = view;
GridView1.DataBind();
就提示:编译器错误消息: CS0266: 无法将类型“System.Collections.Generic.IEnumerable<System.Data.DataRow>”隐式转换为“System.Data.EnumerableRowCollection<System.Data.DataRow>”。存在一个显式转换(是否缺少强制转换?).Take(2) 错误我该怎么样写才对?我只想取出数据的头两行
DataTable dt = ds.Tables[0];
//按CreateDate排序
EnumerableRowCollection<DataRow> query = from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order; DataView view = query.AsDataView(); GridView1.DataSource = view;
GridView1.DataBind();
但我只想要头两行,更改代码如下:DataSet ds = EC.XmlObject.GetXml(Server.MapPath("../vvvvv/2009123000353/aa.xml"));
DataTable dt = ds.Tables[0];
//按CreateDate排序
EnumerableRowCollection<DataRow> query = (from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order).Take(2); DataView view = query.AsDataView(); GridView1.DataSource = view;
GridView1.DataBind();
就提示:编译器错误消息: CS0266: 无法将类型“System.Collections.Generic.IEnumerable<System.Data.DataRow>”隐式转换为“System.Data.EnumerableRowCollection<System.Data.DataRow>”。存在一个显式转换(是否缺少强制转换?).Take(2) 错误我该怎么样写才对?我只想取出数据的头两行
var query设个断点,跟一下query输出的是什么类型
var query = (from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order).Take(2);
//DataView view = query.AsDataView(); GridView1.DataSource = query;
GridView1.DataBind();
执行后的结果却是
RowError HasErrors
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order).Take(2)).ToList();
DataSet ds = EC.XmlObject.GetXml(Server.MapPath("../vvvvv/2009123000353/aa.xml"));
DataTable dt = ds.Tables[0];
var query = ((from order in dt.AsEnumerable()
orderby DateTime.Parse(order.Field <string>("CreateDate")) descending
select order).Take(2)).ToList();
GridView1.DataSource = query;
GridView1.DataBind();
结果:RowError HasErrors
我把XML贴出来吧:
<?xml version="1.0"?>
<PhotoElement>
<Photo PhotoName="f5bc33fc-8363-4392-93cf-6cd6a5778aef.jpg" CreateDate="2009/12/30 22:04:08" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
<Photo PhotoName="d94d51ad-b6b0-499c-a1ba-25e64c9fff58.jpg" CreateDate="2009/12/30 22:04:08" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
<Photo PhotoName="771e6178-a469-4172-a32b-27f65b832c7e.jpg" CreateDate="2009/12/30 22:04:59" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
<Photo PhotoName="616daa7d-2163-4a38-9d54-04b88b67e1ae.jpg" CreateDate="2009/12/30 22:04:59" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
<Photo PhotoName="18b8190e-b067-4553-ac95-57dfb60d6e7d.jpg" CreateDate="2009/12/30 22:07:15" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
<Photo PhotoName="59b05478-50d8-4e39-9bc3-b98027b1a9e7.jpg" CreateDate="2009/12/30 22:07:15" imgCo="" dirmc="vvvvv" dirAlbum="2009123000353" />
</PhotoElement>
orderby DateTime.Parse(order.Field<string>("CreateDate")) descending
select order).Take(2).CopyToDataTable();