使用2参数的SqlDataSource SelectCommand和LIKE不起作用

时间:2012-06-19 15:46:40

标签: asp.net sql sqldatasource

我在SqlDataSource中有以下select命令,我的问题是当我有两个参数的值时它只返回数据。当只有1有值时,我还需要它来返回数据。

SelectCommand="SELECT user.UserId, UserProfiles.Company, UserProfiles.Address, UserProfiles.JV2, UserProfiles.DB1, aspnet_Membership.Email, user.UserName
FROM user INNER JOIN UserProfiles ON user.UserId = UserProfiles.UserId  WHERE        (@UserName  IS NULL OR @UserName = ''  OR user.UserName LIKE '%'+@UserName+'%' ) AND
                     (@Email IS NULL  OR @Email = '' OR user.Email LIKE '%'+@Email+'%') 

使用以下参数

   <SelectParameters>  
    <asp:ControlParameter Name="Email" ControlID="eMail"  PropertyName="Text" Type="String"  />
<asp:ControlParameter Name="UserName" ControlID="userName"  PropertyName="Text" Type="String"  />

当我在SQL Server Management Studio中运行查询时,当我只输入1个值或两者都返回时,它返回数据。 当我运行表单时,我只在两个字段中输入值时才返回数据。

我发现这篇文章:SqlDataSource SelectCommand using LIKE does not work虽然相似,但解决方案没有帮助。

显然我做错了什么,我只是看不出来。

1 个答案:

答案 0 :(得分:4)

我有一个类似的问题,并将其添加到sqldatasource修复它:

<asp:SqlDataSource CancelSelectOnNullParameter="false">