我正在使用SqlDataSource
来恢复要在下拉列表中显示的数据。每个下拉列表的标题是品牌,在下拉列表中我希望每个品牌的三个产品被带回来。
<asp:SqlDataSource ID="Categories" runat="server" ConnectionString="<%$ ConnectionStrings:Categories %>" SelectCommand="SELECT * FROM CATEGORY WHERE CategoryID <5"></asp:SqlDataSource>
<asp:ListView ID="ListView2" runat="server" DataSourceID="Categories">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<asp:SqlDataSource ID="images" runat="server" ConnectionString="<%$ ConnectionStrings:Categories %>" SelectCommand="SELECT * FROM ITEM ORDER BY Category_ref"></asp:SqlDataSource>
<li id="<%# Eval("CategoryName") %>">
<a href="<%# Eval("CategoryName", "{0}.aspx") %>"><%# Eval("CategoryName") %></a>
<div class="dropDown">
<div class="listItem">
<asp:ListView ID="listview3" runat="server" DataSourceID="images">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("ItemID","Product.aspx?id={0}") %>'>
<p class="<%# Eval("Category_ref", "brand{0}") %>">
<asp:Image ID="image" CssClass="dropImg" runat="server" ImageUrl='<%# Eval("PhotoPath", "images/products/{0}") %>' />
<br />
<span><%# Eval("ItemName") %></span>
<%# Eval("ItemID").ToString() %>
</p>
</asp:HyperLink>
</ItemTemplate>
</asp:ListView>
</div>
</div>
</li>
</ItemTemplate>
</asp:ListView>
这是我的整个导航,其中包含从数据库返回的品牌名称以及产品信息。
第二个SqlDataSource
查询是我需要修复的地方,所以它只选择3个产品。如果有第四个,它会将其遗漏。
答案 0 :(得分:3)
在SQL Server中:
SELECT TOP 3 * FROM ITEM ORDER BY Category_ref
在MySQL中:
SELECT * FROM ITEM ORDER BY Category_ref LIMIT 3
您应始终使用您的问题指定您选择的数据库,并将问题简化为最重要的(所有ASP代码都无关紧要,只会让人们从您的问题中感到害怕)。