Ich habe eine Datei mit einer Spalte mit der Nummer:
%Vor%Ich möchte den Unterschied zwischen jeder Zahl mit awk berechnen. Die Ausgabe sollte wie folgt aussehen:
%Vor%Wie kann ich es tun?
Probieren Sie den folgenden Code:
%Vor%Falls awk keine strenge Anforderung ist, eine Shell-Lösung:
%Vor%DRYer
%Vor%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%