Visual studio 2010 VS2010:ListView不返回任何数据,即使在配置数据源时测试的查询工作正常

Visual studio 2010 VS2010:ListView不返回任何数据,即使在配置数据源时测试的查询工作正常,visual-studio-2010,listview,stored-procedures,sqldatasource,Visual Studio 2010,Listview,Stored Procedures,Sqldatasource,我正在尝试使用以下存储过程填充ListView: ALTER PROCEDURE dbo.PlayersWithFilter ( @filter varchar(255) = NULL, @team int = NULL ) AS IF @filter IS NULL BEGIN SELECT P1.PlayerKey, P1.Player, P2.Position, T1.TeamAbbrev

我正在尝试使用以下存储过程填充ListView:

    ALTER PROCEDURE dbo.PlayersWithFilter
    (
    @filter varchar(255) = NULL,
    @team int = NULL
    )
AS
    IF @filter IS NULL
        BEGIN
            SELECT        P1.PlayerKey, P1.Player, P2.Position, T1.TeamAbbreviation, P1.Height, P1.Weight, P1.Speed, P1.Status
            FROM          Player AS P1
            INNER JOIN    Position AS P2 ON P1.PositionID = P2.PositionID
            INNER JOIN    Team AS T1 ON T1.TeamID = P1.TeamID
            WHERE         P1.TeamID = @team
            ORDER BY      P2.PosSort;
        END
    ELSE
        BEGIN
            SELECT        P1.PlayerKey, P1.Player, P2.Position, T1.TeamAbbreviation, P1.Height, P1.Weight, P1.Speed, P1.Status
            FROM          Player AS P1
            INNER JOIN    Position AS P2 ON P1.PositionID = P2.PositionID
            INNER JOIN    Team AS T1 ON T1.TeamID = P1.TeamID
            WHERE         P1.Player LIKE '%' + @filter + '%'
            ORDER BY      P2.PosSort;
        END

现在,如果我在“配置数据源”的“测试查询”部分进行测试,它会工作。当我试图在浏览器中调试它时,它总是不返回任何行。如果我注释掉If语句和@filter参数,只使用@team参数,那么它就可以工作了。任何人都可以发现问题或提出尝试的建议?谢谢。

显然SQLDataSource有一个名为“CancelSelectOnNullParameter”的属性。。。是的。

调试时是否为参数传递了不同的值?我尝试了各种不同的值。我甚至留了一个空的,填了另一个,试图得到一个默认情况来显示(即team=2,filter=[nothing sent])。就像我说的,它可以在测试查询上工作,但在我进行调试时就不行了。不知道为什么。我不熟悉存储过程,所以我猜可能是我做了一些不正确的事情。在Sql Server Profiler中,您能看到什么被传递到此存储过程和随后的select语句?我正在使用Sql Server 2008 express。。。我认为它没有sql分析器。我还可以用其他stofware来看同样的东西吗?我还没有用过,但这可能会有所帮助