verwendetes Datenbanksystem: XML
Hi,
eigentlich lese ich hier nur, bin nun aber auf eine Hürde gestoßen, auf die ich keine einfache Lösung finde.
Ich erstelle derzeit ein kleines Tool für das Verwalten von kleineren Turnieren, habe also eine Spielerdatenbank, Teamdatenbank und die dazugehörigen Ergebnisse der Vorrunde, Zwischenrunde und dem Finale.
Meine XML Struktur sieht wie folgt aus:
<TURNIERDATENBANK>
<SETTINGS>
<TITLE>Turniername</TITLE>
<...>
</SETTINGS>
<SPIELERDB>
<SPIELER ID="1">
<VORNAME/>
<NACHNAME/>
<GEBURTSDATUM/>
</SPIELER>
</SPIELERDB>
<EINZEL>
<SPIELER ID="1">
<VORRUNDE>
<SPIEL ID=1/>
<SPIEL ID=2/>
<SPIEL ID=3/>
</VORRUNDE>
<ZWISCHENRUNDE>
<SPIEL ID=1/>
<SPIEL ID=2/>
<SPIEL ID=3/>
</ZWISCHENRUNDE>
</SPIELER
</EINZEL>
</TURNIERDATENBANK>
Jedenfalls möchte ich die Ergebnisverwaltung so einfach wie auch nur möglich gestalten und ebenso die Abfrage.
Ich habe nun die letzten Tage damit verbracht mich mit System.XML auseinanderszusetzen, genauso wie Forenbeiträge zu lesen, herauszufinden, dass die direkte Ansprache ( vor allem auf dynamische Art und Weise ) nicht ganz so einfach ist und DataSets auch nicht das Gelbe vom Ei sind.
Gibt es vielleicht eine Möglichkeit, dies via SQL-Befehle ( meinetwegen über ODBC ) zu realisieren, und wenn ja hat mir jemand nen Beispiel, ne Klasse oder nen Tutorial? ( Letzteres wäre mir am Liebsten, damit ich weiß was man genau machen muss / benötigt ).
Wünschenswert wäre es, es über Befehle wie
int Game_1 = SQL(SELECT SPIEL FROM EINZEL WHERE GAMENUMBER=1 AND PLAYER_ID=1 AND ROUND=VORRUNDE);
Grüße vom Abt
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo JAck30lena,
danke für Deine Antwort.
Ich werde mir das Thema linq2sql einmal anschauen - weitere, SQL-nahe Vorschläge nehme ich natürlich weiter gerne an.
Grüße Abt
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ja, mein ich doch 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
ich glaub mit nem XPathDocument kannst du nen Stream direkt auf den einzelnen Nodes setzen:
System.Xml.XPath.XPathDocument doc = new ...();
doc.CreateNavigator().Select(...);
Aber habe ich die Möglichkeit hier eine Selectabfrage auch nach Attributen zu gestalten?
Ein kurzes Beispiel wäre sehr nett.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Klar geht das:
Mit XmlDocument:
XmlNodeList nodes = doc.SelectNodes("//Root/Child[@Attribute=Value or @Attribute2=Value2]");
Mit XPathDocument:
XPathNodeIterator it = doc.CreateNavigator().Select("//Root/Child[@Attribute=Value or @Attribute2=Value2]");
edit: beim zweiten Attribute das @ vergessen peinlich 😁