___ qstntxt ___
Sagen Sie, ich habe diese Klasse:
%Vor%
Ich versuche, eine generische Liste mit Daten aus einer Datenbank zu füllen. Da GetSqlInt32 INullable implementiert, hätte ich gedacht, dass der unten stehende Code funktionieren würde. Es tut es nicht. Es erzeugt einen Fehler, wenn Field2 null ist.
%Vor%
Irgendwelche Ideen, warum es nicht funktioniert?
___ answer3307902 ___
Hier ist eine Variation der Schmerzreduktion des Themas. Wenn jemand weiß, wie man Val und Ref in eine Template-Funktion einfügt, ist es frei zu posten. Sie müssen den Typ explizit angeben (C # kompiliert kann nicht belästigt werden) :-) aber dies:
%Vor%
macht meinen Fingern immer noch Freude: -)
%Vor%
___ qstnhdr ___ Verwendung des Datenreaders mit Nullwerten
___ answer7208753 ___
Sehen Sie sich diese Lösung an, die nicht von mir geschrieben wurde:
%Vor%
Es wurde ursprünglich hier vorgeschlagen:
SQL Data Reader - Umgang mit Null-Spalten
___ answer1362603 ___
Ich denke es ist, weil der zurückgegebene Wert %code% und nicht %code% ist.
Stattdessen können Sie mithilfe der IsDbNull () -Methode überprüfen, ob das Feld vor dem Lesen null ist.
___ antwort4370720 ___
Ich versuche, eine Access-Datenbank mit 39 Feldern zu exportieren - viele mit NULL-Werten. Ich konnte die Erweiterungsmethode nicht funktionieren, also schrieb ich die folgende Funktion:
%Vor%
Wenn ich jedes Feld lese, das einen NULL enthalten könnte, schreibe ich das Feld wie folgt:
ChkDbStr (DbReader.GetValue (1))
___ answer1362606 ___
Sie müssen eine spezielle Methode für das Lesegerät verwenden, um zu erkennen, wenn der Wert null ist
%Vor%
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert.
___ answer1362608 ___
Es scheint mir, dass Sie eine solche Konvertierung benötigen (mit einer Erweiterungsmethode):
%Vor%
Dann:
%Vor%
(Kommentar zu anderen Antworten: Sie müssen %code% nicht einfügen, da %code% bereits Nullwerte darstellen kann. Sie müssen dies nur erkennen, bevor Sie %code% verwenden.)
___ tag123null ___ Null bedeutet * nichts * oder * unbekannt *, abhängig vom Kontext.
___ tag123datareader ___ Ein DataReader liest einen Nur-Vorwärts-Stream von Zeilen aus einer Datenquelle.
___ answer1362597 ___
DbNull.Value! = null
Du brauchst also entweder ein? : Ausdruck oder ein if-Block zum Konvertieren von Datenbank-Nullen in c # -Nullwerte und umgekehrt.
___