如果查询字符串为空,则返回表中的所有值

时间:2010-01-01 11:58:12

标签: c# asp.net query-string

好的...所以我有一个页面,根据查询字符串列出表格中的产品。

因此,如果我说 foo.aspx?fam = 1 ,将列出来自 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>

2 个答案:

答案 0 :(得分:5)

设置属性的默认值,以便在未向页面传递任何值时它具有值:

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

答案 1 :(得分:1)

将您的查询更改为

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

并在没有为fam。

指定值时传递null