NullReferenceException - warum?



  • Hallo,

    ich versuche Daten aus einer DB Tabelle auszulesen und erhalte immer die Fehlermeldung NullReferenceException.
    Leider weiß ich nicht weshalb? Ich finde keinen Fehler ... bzw. ich übersehe ihn wohl 😞

    List<file> listAllFiles = new List<file>();
    
    ...
    
    private List<file> GetFiles()
            {
                try
                {
                    using (dbEntitiy ctx = new dbEntity())
                    {
                        //var query = (from p in ctx.file
                        //             select p).Distinct();
    
                        var query = from p in ctx.file
                                    select p;
    
                        foreach (file f in query)
                        {
                            listAllFiles.Add(f);
                        }
    
                        return listAllFiles;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.StackTrace);
                    MessageBox.Show(ex.InnerException.Message);
                    return null;
                }
            }
    

    Der Fehler passiert, sobald das foreach aufgerufen wird.

    Meine Tabelle file
    *id (INT; autoincrement)
    ident (VAR, es gibt darin keine null Werte)
    area (INT, alle Datensätze sind 1)
    time (TIMESTAMP; allen Datensätzen habe ich '2012-01-01 11:00:00' zugeordnet)

    Hat jemand eine Idee?? 😕



  • Schaetze mal 'query' ist Null. Aber das kriegst du selbst raus indem du mal durchdebuggst.



  • Würde ich auch sehr schwer vermuten...



  • Also ich kenn mich jetzt mit LINQ nicht wirklich aus, aber ... wie soll das gehen dass in dem Code query NULL wird?

    Ich würde eher tippen dass ctx.file NULL ist.



  • Hmm..stimmt... Ich glaube erst beim Durchlaufen in der foreach wird die eigentliche Abfrage materialisiert. Dann kann es sein, dass du nicht oben bei der Anweisung den Fehler bekommst, sondern erst in der foreach.



  • Mir war klar, dass query null ist (hab ich leider nicht dazu geschrieben), mein Problem ist eher, warum?
    In der Tabelle gibt es keine null oder leere Werte ... 😕



  • Ich glaub immer noch nicht dass query NULL ist.
    Aber dafür gibt es die supercoole Funktion "step into specific".
    Mach mal.


Log in to reply