SQLDataSource参数不起作用

时间:2015-08-20 08:06:38

标签: sql asp.net sqldatasource

我有以下SQLDataSource:

<asp:SqlDataSource runat="server" ID="MySqlDataSource" ConnectionString='<%$ ConnectionStrings:RmaReportingConnectionString %>' 
     SelectCommand="SELECT DISTINCT [Team] FROM [Locations] WHERE ([Team] IN (@Teams))">
        <SelectParameters>
             <asp:Parameter Name="Teams" Type="String" />
        </SelectParameters>
 </asp:SqlDataSource>

在代码后面调用它:

MySqlDataSource.SelectParameters["Teams"].DefaultValue = "'Team 1','Team 2'";
MySqlDataSource.DataBind();

问题是我没有得到任何结果,我觉得这是由于语法原因,因为如果我在没有参数的情况下运行原始SQL,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

SELECT DISTINCT [Team] FROM [Locations] WHERE ([Team] IN (@Teams))

这只会返回1个结果。你需要提到所有条件,如

 SELECT DISTINCT [Team] FROM [Locations] WHERE ([Team] IN (@Team1,@Team2,@Team3))

答案 1 :(得分:0)

这可能是因为字符串中的转义字符(&#39;)。

尝试在变量字符串前添加@符号:

MySqlDataSource.SelectParameters["Teams"].DefaultValue = @"'Team 1','Team 2'";