Asp.Net中存储过程与中继器绑定
我有一个存储过程Asp.Net中存储过程与中继器绑定,asp.net,stored-procedures,repeater,Asp.net,Stored Procedures,Repeater,我有一个存储过程SP1,它将结果集返回为 select column1 [Col(1)] from table1 我在ASPX页面中的转发器如下所示: <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td> <%# Eval("Col(1)")%>
SP1
,它将结果集返回为
select column1 [Col(1)] from table1
我在ASPX页面中的转发器如下所示:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<%# Eval("Col(1)")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
但是,调用
,我得到一个错误:
“数据绑定:'System.String'不允许索引访问”
原因很清楚,Col(1)
就是痛苦。既然我不能更改存储过程,那么如何在asp.net中处理这种情况呢
谢谢。试试这个
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "Column_Name") %>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
直接提及存储过程中使用的列名
评论后编辑
试试这个吧
<%# eval("Column_Name") %>
使用数据项的索引器。第一项(列)的索引值为0,依此类推
<%# Eval("[0]") %>
或
我像你提到的那样尝试了,但仍然存在相同的问题。嗯……那么试试这个,那么,是否没有办法提及存储过程返回的列名?@Zohaib-发布的代码将完全满足你的需要。如果列(1)包含“某物”,那么它将打印“某物”。
<%# DataBinder.Eval(Container.DataItem, "[0]")%>