我还是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>
答案 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;