Frage

Ich habe die folgende LINQ-Abfrage, die zu einem Fehler führt immer, wenn meine „Bemerkung“ -Spalte in dtblDetail null ist, auch wenn ich testen, ob es NULL ist.

var varActiveAndUsedElementsWithDetails =
                        from e in dtblElements
                        join d in dtblDetails on e.PK equals d.FK into set
                        from d in set.DefaultIfEmpty()
                        where (e.ElementActive == true)
                        select new
                        {
                            ElementPK = e.PK,
                            Remark = d.IsRemarkNull() ? null : d.Remark
                        };

Die Fehlermeldung lautet: „Der Wert für die Spalte‚Bemerkung‘in Tabelle‚dtblDetails‘ist DBNull.“ Nach der Zugabe wird der Test für d.IsRemarkNull () NULL-Verweis Ausnahme ausgelöst.

Können Sie mir dabei helfen?

Ich habe bereits überprüft die folgenden Websites, aber alles andere als nützlich, dass ich testen, nicht für DBNULL finden. Aber die so bedeutet dies nicht mein Problem lösen.

War es hilfreich?

Lösung

Das Problem war, dass der ganze ‚d‘ Artikel leer war. So ergab die Nullreferenz Ausnahme ‚d.IsRemarkNull ()‘ aufrufen. Der folgende Code das Problem behoben:

var varActiveAndUsedElementsWithDetails =
                    from e in dtblElements
                    join d in dtblDetails on e.PK equals d.FK into set
                    from d in set.DefaultIfEmpty()
                    where (e.ElementActive == true)
                    select new
                    {
                        ElementPK = e.PK,
                        Remark = d == null? null : (d.IsRemarkNull() ? null : d.Remark)
                    };

Andere Tipps

Wo kommt der Fehler aus? Ist es möglich, dass es die d.IsRemarkNull () ist, die es verursacht? Was bedeutet das Verfahren aussehen?

Vielleicht:

DBNull.Value.Equals(d.Remark)

Vielleicht ist dieses Feld nicht null in db ermöglichen, einen Standardwert für sie bekommen, und vermeiden Nullwert Handhabung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top