0

id = txt_SearchLibrary のテキスト ボックスがあります。これは、sqldatasource をフィルター処理するために使用している制御パラメーターでもあります。検索テキスト ボックスに何かを入力していないときにすべての結果を取得したいのですが、以下のコードでは 0 行が表示されます。2つの方法を試しましたが、どちらも機能しませんでした。

最初の1つ:

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

1 に答える 1

0

Textプロパティは、SQLステートメントでチェックしているNULLではなく、おそらく""またはString.Emptyです。

于 2012-03-22T21:37:26.943 に答える