2013-05-22 58 views
2

多年來一直使用這個網站,並一直認爲它非常有幫助,通常我所有的問題都通過閱讀網站得到解答。高效的asp.net sql查詢

我有一個網站一些案例研究不是需要我使用這個代碼從數據庫中提取的記錄中涉及到網站的其他部分和: -

<div id="sidebar"> 
    <asp:accessdatasource 
    id="cskey" 
    runat="server" 
    datasourcemode="DataSet" 
    datafile="_db/db.mdb" 
    selectcommand="SELECT id FROM markets_case_assign WHERE productid = @catid"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="catid" QueryStringField="id" DefaultValue="1" /> 
    </SelectParameters> 
    </asp:accessdatasource> 
    <asp:Repeater id="cskeycontent" runat="server" DataSourceID="cskey"> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Visible="false" Text='<%#Eval("id")%>'></asp:Label> 
     <asp:accessdatasource 
    id="csval" 
    runat="server" 
    datasourcemode="DataSet" 
    datafile="_db/db.mdb" 
    selectcommand="SELECT id,title,company FROM casestudies WHERE id = @pid"> 
     <SelectParameters> 
      <asp:controlparameter name="pid" controlid="Label1" DefaultValue="1" /> 
     </SelectParameters> 
     </asp:accessdatasource> 
     <asp:Repeater id="csvalcontent" runat="server" DataSourceID="csval"> 
     <ItemTemplate> 
      <div class="case-studies"> 
      <h2><%#Eval("company")%></h2> 
      <p><%#Eval("title")%></p> 
      <p class="no-margin-bottom"><a href="case-study.aspx?id=<%#Eval("id")%>" class="read-more">Read case study</a></p> 
      </div> 
     </ItemTemplate> 
     </asp:Repeater> 
    </ItemTemplate> 
    </asp:Repeater> 
</div> 

我只是想知道,如果有一個更簡單的方法來做到這一點。

任何幫助將不勝感激。

乾杯安迪

+0

超過這個最小的中繼器簡單嗎?你有什麼想法嗎?也許你會嘗試多次並尋找模板類型? – Aristos

+0

嘿人感謝您的答覆。 我想知道是否有一種方法只有一個查詢。 –

+0

,這是完美的伴侶。謝謝:) –

回答

0

我想知道是否有隻有一個查詢做這件事的方式

爲了使一個查詢,只需更改SQL調用爲:

SELECT id,title,company FROM casestudies 
    WHERE id IN (SELECT id FROM markets_case_assign WHERE productid = @catid) 

並只使用一箇中繼器(內部中繼器)。

現在你失去了額外的先進給他們一些額外的頭分開,線等。

+1

,這是完美的伴侶。謝謝 :) –