Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi liebe Leute, ich habe hier gerade ein etwas merkwürdiges Problem.

Ich umschreibe es mal wie folgt.

Ich habe per Webservice (aus MS Dynamics CRM) eine Abfrage an eine Datenbank gestartet.

Die Datenbank liefert mir eine (BusinessEntity) Collection an Objekten zurück.

Anschließend iteriere ich mit foreach über die Collection.

Bei jedem Iterationsschritt wird das Element der Collection in einen anderen Typ gecastet. Bei mir enthält das "Container"-Objekt also das gecastete Resultat.

Container.new_name enthält entsprechend einen Namen (die Feldnamen sind nicht von mir :D).

Container.sie_abteilung enthält die Abteilung, wo der zugehörige Mitarbeiter auch arbeitet.

Es gibt den Fall, daß ich Mitarbeiter habe, die keinen Eintrag bei Abteilung haben. Entsprechend fange ich die Möglichkeit mit

if ( Container.sie_abteilung == null) { //blablabla }
ab, was auch Problemlos geht. Analog habe ich den Fall, daß der Ort, an dem ein Mitarbeiter gerade eingesetzt wird, ebenfalls leer ist.
if (Container.sie_sitzid == null){ //blablabla }

Das Kuriose an der Sache: genau an der Stelle erhalte ich eine NullReferenceException ?!

Also, ich will die Exception abfangen und schreibe eine Abfrage, bei der genau diese Exception ausgelöst wird ... Merkwürdig.

Zugang zu dem Code der entsprechenden Entität hab ich derzeit keinen.

Hat vllt. trotzdem jemand einen heißen Tip, warum die Abrage selsbt die Exception auslöst?

Wäre Euch sehr dankbar! :]

Bearbeitet von lilith2k3

Zugang zu dem Code der entsprechenden Entität hab ich derzeit keinen.

Hat vllt. trotzdem jemand einen heißen Tip, warum die Abrage selsbt die Exception auslöst?

Weil in dem getter irgendwas gemacht wird das diese auslöst ;)

Ohne den entsprechenden Code zu kennen kann man da nicht viel zu sagen

  • Autor
warum die Abrage selsbt die Exception auslöst?

Aua. Wurde Zeit für die Mittagspause ...

"Abfrage" und "selbst" sollte man schon richtig schreiben können :D

Öh, also ohne Code kann das ja spannend werden *lol*

Hallo,

Es gibt zwei Möglichkeiten warum diese Codezeile eine "NullReferenceException"

1. Die Variable "Container" ist mit null belegt.

2. "sie_sitzid" ist ein Propery, dessen "Get-Methode" mehr macht, als nur nur den Inhalt eines privaten Feldes zurück zu geben.

Bsp:


public class Cotnainer

{

    private int _sie_sitzid;


    public int sie_sitzid

    {

         get

         {

                Database db = null;

                String sql = "Select bla From blu";

                try 

               {

                     // KommentarMarke 1

                     db = DatabaseFactory.Create("ConnectionString");

                }

                finally

                {

                      // KommentarMarke 2

                     using (IDataReader reader = db.ExecuteReader(CommantType.Text, sql)) 

                     {

                          if (reader.Read()) 

                          {

                               return Covnert.ToInt32(reader["sie_sitzid"].ToString());

                          }

                     }

                     return  _sie_sitzid;

                 }

          }

         set

         {

                this. _sie_sitzid = value;

          }

     }

}


In dem Beispiel wird versucht "sie_sitzid" neu aus der Datenbank auszulesen. Wenn dort nix gefunden wird, wird der Wert der Feldvariable zurück gegeben.

Wenn bei " // KommentarMarke 1" das erzeugen der Database fehlschlägt bleibt das feld "db" mit null belegt und das führt im finally block bei " // KommentarMarke 2" zu diese Exception die dann weiter gereicht wird an deine Codezeile.

Wenn der Code von der Klasse "Container" in deinem Projekt hinterlegt ist und nicht z.b. via DLL eingebunden ist würde der Compiler bei " // KommentarMarke 2" anhalten und nicht erst bei deiner geposteten Codezeile.

Database und DatabaseFactory sind Klassen der "Microsoft Enterprise Library"

  • 1 Monat später...

if (Container != null && Container.sie_sitzid == null){ //blablabla }

so etwas funktioniert ;) Aber keine Ahnung was du genau machen willst.

So bald der Container null ist springt die CLR aus dem If-Statement.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.