aus T-SQL XML RAW eine Datasource für den asp:repeater erzeugen

Inhaltsverzeichnis

Im Rahmen unseres Entwicklungs-Mandats für einen mittelständisches Systemhaus mit eigenem Webshop-Produkt, haben wir uns intensiv mit dem repeater-Control von ASP.net beschäftigen dürfen.

Die Herausforderung bestand in einem geschachtelten Repeater. Das klassische Problem lautete: Angebote mit den jeweiligen Angebotspositionen darzustellen. Dazu haben wir die XML-Funktion von T-SQL (SQL Server) genutzt. Die notwendigen Positionsdaten werden als Spalte in dem Angebot, formatiert als RAW-XML, aus der Datenbank geholt:

SELECT 
 OfferPos_P.s_PosNo OfferPos_PosNo,
 OfferPos_P.s_ItemDesc1 OfferPos_ItemDesc1,
 OfferPos_P.N_PACKQUANTITY OfferPos_PackQuantity
FROM 
 sao.OFFERPOS_P with (Nolock)
 WHERE
 OFFERPOS_P.dt_deleted IS NULL
 AND OFFERPOS_P.I_OFFER_P = @nOfferID
FOR XML RAW

Innerhalb des 1. Repeater beinhaltet dann diese Spalte die passenden Positions-Daten. Dieses XML wird dann mit einer kleinen Funktion in eine IEnumerable-Datasource umgewandelt:

public IEnumerable<offerPos> CreateOfferPosDataSource(object xmlData)
 {
 XDocument doc = XDocument.Parse($"<?xml version=\"1.0\"?>{xmlData.ToString()}");
 IEnumerable<offerPos> result = from c in doc.Descendants("row")
 select new offerPos()
 {
 posNo = (string)c.Attribute("OfferPos_PosNo").Value,
 itemDesc1 = (string)c.Attribute("OfferPos_ItemDesc1").Value,
 packQuantity = (decimal)c.Attribute("OfferPos_PackQuantity")
 };
 return result;
 }

Am Ende kann dann diese Datasource für den zweiten Repeater genutzt werden.

<asp:Repeater runat="server" DataSource='<%# CreateOfferPosDataSource(Eval("offerpos_xml")) %>'>
 <ul>
 <ItemTemplate>
 <li><%# Eval("posNo") %>: <%# Eval("itemDesc1") %></li>
 </ul>
 </ItemTemplate>
 
 </asp:Repeater>

Cool oder?

weitere insights

Fünf schlagkräftige Argumente für Database as a Service

Database as a Service (DBaaS) gewinnt als Bereitstellungsmodell für Datenbank-Software immer mehr an Beliebtheit. Hier sind die Gründe dafür: Software as a Service (SaaS) ist eine Form der Bereitstellung von Anwendungen, die sich sowohl im Consumer-Bereich als auch in Unternehmen immer stärker durchsetzt. Die Vorteile von Database as a Service, als einer spezifischen professionellen SaaS-Anwendung, […] …

weiterlesen >>

Die Kombination von KI und physikalischen Modellen eröffnet neue Optimierungspotenziale

Die Kombination von physikalischen Modellen und Künstlicher Intelligenz vereinfacht und beschleunigt die Entwicklung komplexer Produkte und Prozesse. Die Kombination von KI und physikalischen Modellen eröffnet damit neue Optimierungspotenziale. LeanBI, Spezialist für Data-Science-Anwendungen zeigt fünf typische Anwendungsszenarien auf. Die Kombination von KI und physikalischen Modellen eröffnet neue Optimierungspotenziale Flugzeugflügel sind ein aerodynamisches Wunderwerk. Sie sollen den […] …

weiterlesen >>