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

因此,如果我说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>

最佳答案

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

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

关于c# - 如果查询字符串为空,则返回表中的所有值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1988424/

10-13 08:31