pobierane bezpośrednio z bezpośrednim okna:Natychmiastowe okno - przesyłaj jak datetime? zgłasza wyjątek ale (datetime) nie
reader["DateDue"] as DateTime?
Wydajność:
'reader["DateDue"] as DateTime?' threw an exception of type 'System.NullReferenceException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2147467261
HelpLink: null
InnerException: null
Message: "Object reference not set to an instance of an object."
Source: null
StackTrace: null
TargetSite: null
(DateTime?)reader["DateDue"]
Wynik:
{1/26/2015 12:00:00 AM}
Date: {1/26/2015 12:00:00 AM}
Day: 26
DayOfWeek: Monday
DayOfYear: 26
Hour: 0
Kind: Unspecified
Millisecond: 0
Minute: 0
Month: 1
Second: 0
Ticks: 635578272000000000
TimeOfDay: {System.TimeSpan}
Year: 2015
i odniesienia reader["DateDue"]
Wynik:
{1/26/2015 12:00:00 AM}
Date: {1/26/2015 12:00:00 AM}
Day: 26
DayOfWeek: Monday
DayOfYear: 26
Hour: 0
Kind: Unspecified
Millisecond: 0
Minute: 0
Month: 1
Second: 0
Ticks: 635578272000000000
TimeOfDay: {00:00:00}
Year: 2015
Czy to błąd? Jeśli działa bezpośrednio odlewanie do DateTime?
, to powinno działać również odlewanie z as DateTime?
.
Znalazłem pracę nad tym za pomocą Nieważne, że nie radzi sobie dobrze z wartościami zerowymi. W każdym razie istnieje niezliczona ilość sposobów na ominięcie tej dziwności.reader.GetDateTime(reader.GetOrdinal("DateDue")) as DateTime?
.
Repo wykazując problemu można znaleźć tutaj: https://github.com/jjoedouglas/exceptionAsDatetime
pokaż kod mężczyzna, –
To bardzo prosty 'IDataReader' w ciasnej pętli. Nie interesujący w najmniejszym, jeśli kiedykolwiek napisałeś kod, który używa 'SqlConnection' i' SqlCommand', widziałeś to milion razy. – MushinNoShin
@MushinNoShin "To bardzo prosty IDataReader w ciasnej pętli". Z wyjątkiem twojej "bardzo prostej pętli" daje błąd, który nie ma sensu. Pokaż nam kod, nie mów tylko, że użycie słowa kluczowego 'as' powoduje zgłoszenie wyjątku o wartości zerowej. – Rob