2010-01-01 53 views
2

好的...所以我有一個基於查詢字符串列出表中產品的頁面。如果查詢字符串爲空,則返回表中的所有值

所以,如果我說foo.aspx?FAM = 1種所有來自家庭的產品將陸續上市。

如果查詢字符串爲空,我怎樣才能讓我的代碼列表中的所有值?

我的SQL命令將不得不有所不同...不能真正看到我能做到這一點。

<asp:SqlDataSource ID="ds_produtos" runat="server" 
    ConnectionString="<%$ ConnectionStrings:LocalSqlServer2 %>" 

    SelectCommand="SELECT DISTINCT [IdProduct], [Name], [Description], [IdFamily], [Price], [Stock] FROM [Product] WHERE ([IdFamily] = @IdFamily)"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="IdFamily" QueryStringField="fam" Type="Int32" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

回答

4

設置屬性的默認值,以便它有一個值,當你不傳遞到頁面的任何值:

<asp:QueryStringParameter Name="IdFamily" QueryStringField="fam" Type="Int32" DefaultValue="-1" /> 

在查詢中使用默認值:

SelectCommand="select IdProduct, [Name], Description, IdFamily, Price, Stock from Product where IdFamily = @IdFamily or @IdFamily = -1" 
+0

工程就像一個魅力! – 2010-01-01 12:13:18

1

查詢更改爲

SELECT DISTINCT [IdProduct], [Name], [Description], [IdFamily], [Price], [Stock] FROM [Product] WHERE ([IdFamily] = @IdFamily OR @IdFamily Is NULL)

,並通過空時,有沒有爲FAM指定的值。

+0

嗯......試過了,它沒有奏效。 – 2010-01-01 12:10:38

+0

確保CancelSelectOnNullParameter設置爲false。 – Giorgi 2010-01-01 12:27:11

相關問題