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]")%>