[英]How to add more than one SQL statement/Query String on 1 DataSource?
我目前有以下語句,QueryString設置為ListView控件上的ProductCategory:
SELECT * FROM Products WHERE (ProductCategory = ?)
我想在同一個DataSource上添加此語句和查詢字符串以允許ProductModel的查詢字符串,我該怎么做?
SELECT * FROM Products WHERE (ProductModel = ?)
列表顯示
<asp:ListView runat="server" ID="listView" GroupItemCount="3"
DataSourceID="AccessDataSource1">
<LayoutTemplate>
<div style="height: 966px;">
<div style="width: 771px;">
<asp:PlaceHolder runat="server" ID="groupPlaceHolder" />
<asp:DataPager runat="server" ID="dpMyDatePager" PageSize="9"
PagedControlID="listView">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True"
ShowFirstPageButton="True" />
<asp:NumericPagerField />
</Fields>
</asp:DataPager>
</div>
</LayoutTemplate>
<GroupTemplate>
<div style="clear: both;">
<asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
</div>
</GroupTemplate>
<ItemTemplate>
<div class="productItem">
<div>
<img src='<%# Eval("ProductUrl") %>' >
</div>
<div class="catalog-price">
<br />
<%# Eval("ProductBrand") %>
<%# Eval("ProductModel") %></div>
<div class="catalog-price2">
<b>
Our Price: S$<%# Eval("NormalPrice") %></div>
</b><br />
<div class="cell1">
Add to cart</div>
<div class="cell2">
<asp:HyperLink ID="HypViewDetails" style="text-decoration:none" NavigateUrl='<%#Eval("ProductId", "ProductDetails.aspx?ProductID={0}")%>'
runat="server">View Details</asp:HyperLink>
</div>
</div>
</ItemTemplate>
<ItemSeparatorTemplate>
<div class="itemSeparator">
</div>
</ItemSeparatorTemplate>
<GroupSeparatorTemplate>
<div class="groupSeparator">
</div>
</GroupSeparatorTemplate>
<EmptyDataTemplate>
</EmptyDataTemplate>
</asp:ListView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TabStoreDB.mdb"
SelectCommand="SELECT * FROM Products WHERE (ProductCategory = ?) OR (ProductBrand = ?)">
<SelectParameters>
<asp:QueryStringParameter Name="?" QueryStringField="ProductCategory" />
<asp:QueryStringParameter Name="?" QueryStringField="ProductBrand" />
</SelectParameters>
</asp:AccessDataSource>
除非我完全不了解你的問題。 您只需向WHERE
子句添加AND/OR
即可
OR WHERE
子句
SELECT *
FROM Products
WHERE (ProductCategory = ?)
OR (ProductModel = ?)
AND WHERE
子句
SELECT *
FROM Products
WHERE (ProductCategory = ?)
AND (ProductModel = ?)
根據您的編輯,您有兩個查詢參數? - 他們每個人都需要有一個特定的名字
SelectCommand="SELECT * FROM Products WHERE (ProductCategory = @ProductCategory) OR (ProductBrand = @ProductBrand)">
<SelectParameters>
<asp:QueryStringParameter Name="ProductCategory" QueryStringField="ProductCategory" />
<asp:QueryStringParameter Name="ProductBrand" QueryStringField="ProductBrand" />
</SelectParameters>
如果您不確定如何使用這些參數,我建議您閱讀以下內容:
您為這兩個參數指定了相同的名稱。 你需要特定 - 試試這個:
SelectCommand="SELECT * FROM Products WHERE (ProductCategory = @cat) OR (ProductBrand = @brand)">
然后這個:
<SelectParameters>
<asp:QueryStringParameter Name="cat" QueryStringField="ProductCategory" />
<asp:QueryStringParameter Name="brand" QueryStringField="ProductBrand" />
</SelectParameters>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.