Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

vielleicht kann mir jemand helfen...?

Ich habe folgendes Problem:

Ich beziehe Daten aus einer Datenbank, die mir als XML-Resultset zurückgegeben werden. Diese lege ich in einem XDocument ab.

Nun wollte ich gerne mittels LINQ die einzelnen Resultsets in einzelne Objekte packen und habe folgende Schwierigkeit:


var Daten = from item in result select new (Bla=item.Element("Bla").value);

So in etwa sieht meine Abfrage aus. Allerdings kann es sein, daß die Zuweisung insgesamt NULL ergibt, weil ein Item nicht jedesmal vorhanden ist.

Weiß einer eine Möglichkeit, wie ich das new {} gestalten könnte, daß er entweder wenn Element vorhanden den value nimmt oder, wenn element nicht vorhanden einfach string.empty? Das in einen Haufen try-catch-Blöcke zu schreiben finde ich unelegant, ist aber bisher meine einzige Lösung.

item.Element("Bla").value löst ja schon eine Exception aus... wenn's nur null nehmen würde, statt der Exception wär mir ja schon geholfen.

Danke im voraus.

Geschrieben

bla = item == null ? String.Empty : (string) item.Element("Bla").value

Sofern nur item null sein kann.

falls value schon nen String zurückgibt kannst du den cast logischerweise auch sein lassen.

Hab das jetzt mal so aus dem Stehgreif geschrieben.

Geschrieben

Hm, danke! Aber das löst das Prinzip leider nicht.

Die Schwierigkeit besteht darin, daß das Resultset

<result>

<Bla>"Blah"</Bla>

</result>

Mal <Bla> enthält und mal nicht. Und es ist auch klar, daß der Zugriff auf item.Element("Bla").value eine Exception auslöst, wenn's das Tag nicht gibt. Ich bräuchte sowas wie eine "Exist"-Funktion oder so.

Dann könnte ich das einfach mit in meine Abfrage (mittels anonymer Funktion) einbauen. *grübel*

Vielleicht hat ja noch jemand eine Idee ... :]

Geschrieben

Falls nochjemand auf so ein Problem stoßen sollte:

Ich bin ja auch doof *ankopphau* Wenn ich den Selectbefehl lediglich auf das Element mache und nicht auf seinen Inhalt, bekomme ich auch ordentlicherweise null zurück.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...