2

SqlDataSource に次の selectcommand があります。私の問題は、両方のパラメーターの値がある場合にのみデータを返すことです。値が 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 は機能しませんが、これは似ていますが、解決策は役に立ちませんでした。

明らかに、私は何か間違ったことをしました。

4

1 に答える 1

4

同様の問題があり、これを sqldatasource に追加すると修正されました。

<asp:SqlDataSource CancelSelectOnNullParameter="false">
于 2012-06-19T16:15:06.950 に答える