Asp.net SelectCommand不';当未给出控制参数时,t工作

Asp.net SelectCommand不';当未给出控制参数时,t工作,asp.net,sqldatasource,selectcommand,controlparameter,Asp.net,Sqldatasource,Selectcommand,Controlparameter,我有一个id=txt\u SearchLibrary的文本框,这也是我用来过滤sqldatasource的控制参数,我想在我的searchtext框中不键入任何内容时获得所有结果,但下面的代码结果为0行。我试了两种方法,但都不起作用 第一个: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDbConn %>"

我有一个id=txt\u SearchLibrary的文本框,这也是我用来过滤sqldatasource的控制参数,我想在我的searchtext框中不键入任何内容时获得所有结果,但下面的代码结果为0行。我试了两种方法,但都不起作用

第一个:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDbConn %>"
            SelectCommand="SELECT * FROM [Books] WHERE ([BookName] LIKE '%' + @searchText + '%') OR  @searchText IS NULL">
    <SelectParameters>
        <asp:ControlParameter ControlID="txt_SearchLibrary" Name="searchText"
                    PropertyName="Text" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

第二个:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDbConn %>"
            SelectCommand="SELECT * FROM [Books] WHERE ([BookName] LIKE '%' + @searchText + '%')">
    <SelectParameters>
        <asp:ControlParameter ControlID="txt_SearchLibrary" DefaultValue="" Name="searchText"
                    PropertyName="Text" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

文本属性可能是“”或String.Empty,而不是在SQL语句中检查的NULL