эффективный 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>


Мне просто интересно, есть ли более простой способ сделать это.

Любая помощь была бы очень признательна.

Ура Энди

791   1  

1 ответ:

Мне было интересно, есть ли способ сделать это только с одним запросом

Чтобы сделать его одним запросом, просто измените вызов SQL следующим образом:

SELECT id,title,company FROM casestudies 
  WHERE id IN (SELECT id FROM markets_case_assign WHERE productid = @catid)
И использовать только один ретранслятор (внутренний).

Теперь вы теряете дополнительный расширенный, чтобы разделить их с некоторым дополнительным заголовком, строкой и т. д..

Comments

    Ничего не найдено.