当没有给出ControlParameter时,SelectCommand不起作用

时间:2012-03-22 21:25:35

标签: asp.net sqldatasource selectcommand controlparameter

我有一个id = txt_SearchLibrary的文本框,它也是我用来过滤我的sqldatasource的控件参数,我希望在我的搜索文本框中没有输入内容时获得所有结果,但是下面的代码结果为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>

1 个答案:

答案 0 :(得分:0)

Text属性可能是&#34;&#34;或String.Empty,而不是您在SQL语句中检查的NULL。