ersetzen
%Vor%mit
%Vor%Das Fragezeichen markiert es als Nullwert, und Ihr Leser sollte in der Lage sein, startdate auf null zu setzen, anstatt eine Ausnahme auszulösen.
Sie können auch nach NULL-Werten suchen, während Ihr Leser arbeitet und NULL-Werte durch leere Zeichenfolgen ersetzen
%Vor%Hier ist eine Hilfsmethode, um den Wert aus dem Leser herauszuholen
%Vor%Update zur Verwendung als Antwort auf einen Kommentar
%Vor%Beachten Sie auch, dass Sie %code% und dann %code% verwenden. Wahrscheinlich sollte %code%
seinIch hasse es fast, diese Frage zu stellen, es scheint, als ob sie schon millionenfach gestellt worden wäre, aber selbst wenn ich die andere Frage recherchiere, kann ich das in meinem Fall immer noch nicht herausfinden.
Ich habe gelesen, dass DateTime ein NULL-fähiger Typ ist, und ich habe ein paar der Beispiele ausprobiert, aber ich versuche herauszufinden, ob in der Datenbank mein SQLDATAREADER fehlerhaft ist.
Fehler
System.Data.SqlTypes.SqlNullValueException: Daten sind Null. Diese Methode oder Eigenschaft kann nicht für Nullwerte aufgerufen werden.
DetailsKlasse
%Vor%DBClass
%Vor%Versuchen Sie Folgendes:
Mache die %code% Variable %code% , wie folgt:
%Vor%Wenn Sie nun den Wert vom Objekt %code% abrufen, müssen Sie die Methode %code% verwenden, die bestimmt, ob der Wert %code% von der Datenbank zurückkommt, wie folgt:
%Vor%Hinweis: Ich bin mir nicht sicher, wo Sie %code% dem aus der Datenbank gelesenen Wert zuweisen, da dieser im gebuchten Code nicht angezeigt wird. Deshalb habe ich es in meinem Beispiel direkt zugewiesen, aber möglicherweise müssen Sie die Platzierung der Beispiellogik anpassen.
Können Sie uns bitte genau sagen, welche Zeile den Fehler beim Debuggen auslöst? Es wäre einfacher.
%Vor%Es ist nicht erforderlich, NULL explizit zuzuweisen, wenn es DBNull ist, da es ein NULL-fähiger Typ ist und daher standardmäßig null enthält.
Ok, gemäß Ihrem aktualisierten Code (beachten Sie die Kommentare):
%Vor%Lasst uns es ausführlicher versuchen:
%Vor%Ich hasse es fast, diese Frage zu stellen, es scheint, als ob sie schon millionenfach gestellt worden wäre, aber selbst wenn ich die andere Frage recherchiere, kann ich das in meinem Fall immer noch nicht herausfinden.
Ich habe gelesen, dass DateTime ein NULL-fähiger Typ ist, und ich habe ein paar der Beispiele ausprobiert, aber ich versuche herauszufinden, ob in der Datenbank mein SQLDATAREADER fehlerhaft ist.
Fehler
System.Data.SqlTypes.SqlNullValueException: Daten sind Null. Diese Methode oder Eigenschaft kann nicht für Nullwerte aufgerufen werden.
DetailsKlasse
%Vor%DBClass
%Vor%Hier ist eine Hilfsmethode, um den Wert aus dem Leser herauszuholen
%Vor%Update zur Verwendung als Antwort auf einen Kommentar
%Vor% Beachten Sie auch, dass Sie reader.IsDBNull(1)
und dann reader.GetOrdinal
verwenden. Wahrscheinlich sollte reader.IsDBNull(reader.GetOrdinal("EMAIL"))
ersetzen
%Vor%mit
%Vor%Das Fragezeichen markiert es als Nullwert, und Ihr Leser sollte in der Lage sein, startdate auf null zu setzen, anstatt eine Ausnahme auszulösen.
Sie können auch nach NULL-Werten suchen, während Ihr Leser arbeitet und NULL-Werte durch leere Zeichenfolgen ersetzen
%Vor%Können Sie uns bitte genau sagen, welche Zeile den Fehler beim Debuggen auslöst? Es wäre einfacher.
%Vor%Es ist nicht erforderlich, NULL explizit zuzuweisen, wenn es DBNull ist, da es ein NULL-fähiger Typ ist und daher standardmäßig null enthält.
Ok, gemäß Ihrem aktualisierten Code (beachten Sie die Kommentare):
%Vor%Lasst uns es ausführlicher versuchen:
%Vor%Versuchen Sie Folgendes:
Mache die startingDate
Variable nullable
, wie folgt:
Wenn Sie nun den Wert vom Objekt SqlDataReader
abrufen, müssen Sie die Methode IsDbNull
verwenden, die bestimmt, ob der Wert NULL
von der Datenbank zurückkommt, wie folgt:
Hinweis: Ich bin mir nicht sicher, wo Sie startingDate
dem aus der Datenbank gelesenen Wert zuweisen, da dieser im gebuchten Code nicht angezeigt wird. Deshalb habe ich es in meinem Beispiel direkt zugewiesen, aber möglicherweise müssen Sie die Platzierung der Beispiellogik anpassen.