SelectCommand не работает, если ControlParameter не задан

У меня есть текстовое поле с id = txt_SearchLibrary, которое также является моим параметром управления, который я использую для фильтрации моего sqldatasource, я хочу получить все результаты, когда я не набираю что-то в поле поиска, но ниже кодирует результаты 0 строк. Я попробовал 2 способа, но оба не сработали.

первый:

<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>

person HOY    schedule 22.03.2012    source источник


Ответы (1)


Свойство Text, вероятно, имеет значение "" или String.Empty, а не NULL, которое вы проверяете в своей инструкции SQL.

person mellodev    schedule 22.03.2012