C# 数据绑定:“System.Data.DataRowView”不包含名为“Region”的属性

C# 数据绑定:“System.Data.DataRowView”不包含名为“Region”的属性,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,由于查询未返回列Regoin,因此我收到此错误。因为这取决于用户选择。根据用户选择,在查询中使用聚合函数。如果用户未选择区域,则需要隐藏列。我怎样才能做到这一点 存储过程 begin set @SQLQuery='select ROW_NUMBER() OVER (ORDER BY BusinessUnit) As SrNo, BusinessUnit' set @GrpBy='' /* This is to concatenate as group by clau

由于查询未返回列Regoin,因此我收到此错误。因为这取决于用户选择。根据用户选择,在查询中使用聚合函数。如果用户未选择区域,则需要隐藏列。我怎样才能做到这一点

存储过程

     begin
    set @SQLQuery='select ROW_NUMBER() OVER (ORDER BY BusinessUnit) As SrNo, BusinessUnit'
set @GrpBy=''       /* This is to concatenate as group by clause */

    if @Tower<>'false'
        begin
        set @SQLQuery = @SQLQuery + ', ' + 'Tower'
        Set @GrpBy = @GrpBy + ', ' + 'Tower'
        end

    if @Regionwise<>'false'
        begin
        set @SQLQuery = @SQLQuery + ', ' + 'Region'
        Set @GrpBy = @GrpBy + ', ' + 'Region'
        end

    if @Countrywise<>'false'
        begin
        set @SQLQuery = @SQLQuery + ', ' + 'Country'
        Set @GrpBy = @GrpBy + ', ' + 'Country'
        end

    if @Levelwise<>'false'
        begin
        set @SQLQuery = @SQLQuery + ', ' + 'EmployeeLevel'
        Set @GrpBy = @GrpBy + ', ' + 'EmployeeLevel'
        end


    Set @SQLQuery= @SQLQuery + ', count(SapId) as EmpCount from tbl_RosterMgmtData where RollOffDate is null '

    Set @SQLQuery= @SQLQuery + ' group by BusinessUnit' + @GrpBy

end



Execute sp_Executesql @SQLQuery 
中继器

<ItemTemplate>
        <tr>
            <td align="left"><asp:Literal ID="Literal11" runat="server" Text='<%# Eval("SrNo") %>' Mode="Encode"></asp:Literal></td>
            <td align="left"><asp:Literal ID="Literal12" runat="server" Text='<%# Eval("BusinessUnit") %>' Mode="Encode"></asp:Literal></td>
            <td align="left" id="td_Tower" runat="server"><asp:Literal ID="Literal15" runat="server" Text='<%# Eval("Tower") %>' Mode="Encode"></asp:Literal></td>
            <td align="left"><asp:Literal ID="Literal16" runat="server" Text='<%# Eval("Region") %>' Mode="Encode"></asp:Literal></td>
            <td align="left"><asp:Literal ID="Literal17" runat="server" Text='<%# Eval("Country") %>' Mode="Encode"></asp:Literal></td>
            <td align="left"><asp:Literal ID="Literal13" runat="server" Text='<%# Eval("EmpCount") %>' Mode="Encode"></asp:Literal></td>

        </tr>

        </ItemTemplate>

你怎么指望有人能在这里帮忙?错误信息非常清楚。您正在动态更改过程返回的列,很明显,您的dotnet代码无法处理此问题。它希望在过程的结果集中有一列。你需要在这里分享更多的信息,问题只是你的程序中的一部分。@sean lange,所以它不起作用。替代方法是什么?可能有很多选择。但它们取决于你需要完成什么。您可以允许动态绑定,您可以始终返回列,然后有条件地隐藏它们。当然还有其他选择,但这两种选择很快就会浮现在脑海中。你希望有人能在这里提供帮助吗?错误信息非常清楚。您正在动态更改过程返回的列,很明显,您的dotnet代码无法处理此问题。它希望在过程的结果集中有一列。你需要在这里分享更多的信息,问题只是你的程序中的一部分。@sean lange,所以它不起作用。替代方法是什么?可能有很多选择。但它们取决于你需要完成什么。您可以允许动态绑定,您可以始终返回列,然后有条件地隐藏它们。当然还有其他选择,但这两种选择很快就会浮现在脑海中。