【发布时间】:2011-12-31 19:29:11
【问题描述】:
我正在使用 ADO.NET 填充一个 DataTable 并绑定一个 DataList,它可以工作。但是当我尝试使用 Linq 从 DataTable 中仅提取 10 条记录时,如下所示,我的代码给出了错误:
var xx=dt.asEnumerable().take(10).tolist();
dglist.datasource=xx;
dglist.databind();
<asp:DataList ID="dglist" runat="server"
RepeatColumns="4" RepeatDirection="Horizontal"
RepeatLayout="Table" CellPadding="1">
<ItemTemplate>
<div>
<asp:Image runat="server" id="Image1"
src='<%# Eval("photos") %>' BorderWidth="0"
alt="" style="width:300px;height:300px;display:block;"/>
</div>
</ItemTemplate>
</asp:DataList>
我的数据表有一个名为“照片”的列。绑定到 DataList 时出现错误。请指导我如何使用 Linq 从 DataTable 中提取 10 条记录并将 DataList 与 10 条记录绑定。
我还有一个问题。
datatable.asEnumerable() 是什么意思,它有什么作用?似乎通过 asEnumerable() 将 DataTable 转换为什么?
【问题讨论】:
-
关于您的最后一个问题,它将数据库转换为集合(即 IEnumerable
) -
什么是异常或您收到的消息?
-
找不到名为“照片”的列
-
那个代码可以吗?我使用 ado.net 而不是 linq to sql 填充我的数据表。
-
您能否尝试删除 .tolist() 部分(var xx=dt.asEnumerable().take(10);)。过去将我的 IEnumerable 转换为 List 时,我得到了一些奇怪的结果,但无法解释原因。你也可以在执行代码的时候下一个断点,看看你的 xx var 的属性是什么,看看它是否真的不存在。