将多个值传递给存储过程

时间:2013-12-28 19:14:15

标签: asp.net sql-server stored-procedures

我还是ASP.NET的新手,我遇到了将多个值传递给存储过程的问题。我有一个网格视图,参数从复选框列表中提取。该参数是年份。所以,我想要做的是让它选择参数为'2007,2008,2009',然后我会在存储过程中解析它。

    <asp:SqlDataSource ID="spr_playerStats" runat="server" ConnectionString="<%$ ConnectionStrings:string %>" SelectCommand="spr_playerStats" SelectCommandType="StoredProcedure" DataSourceMode="DataReader">
        <SelectParameters>
            <asp:ControlParameter ControlID="cbl_season" Name="season" PropertyName="SelectedValue" Type="String"/>
        </SelectParameters>
    </asp:SqlDataSource>



    <asp:CheckBoxList ID="cbl_season" runat="server">
        <asp:ListItem Selected="True">2007</asp:ListItem>
        <asp:ListItem Selected="True">2008</asp:ListItem>
        <asp:ListItem Selected="True">2009</asp:ListItem>
    </asp:CheckBoxList>

1 个答案:

答案 0 :(得分:0)

根据以下评论进行更新:

您可以在代码中添加以下代码来实现:

var spParams = String.Empty;
foreach(ListItem lstItem in cbl_season.Items) 
{
    if(lstItem.Selected)
    {
        if(spParams != String.Empty)
            spParams += ",";

        spParams += lstItem.Value;
    }
}
spr_playerStats.SelectParameters["season"].DefaultValue = spParams;