Patrząc na tę dokumentację
, wygląda na to, że określasz dwie sprzeczne opcje (AllowZeroDateTime=true
i ConvertZeroDateTime=true
) i taki, który wydaje się nie być wymieniony (ZeroDateTimeBehavior=ConvertToNull
).
Proponuję, chyba że masz rzeczywiste dane, które są DateTime.MinValue
którego nie chcesz mieszać z wartością „zero”, po prostu określ ConvertZeroDateTime=true
i wykryj, czy wynik to DateTime.MinValue
. Zdecydowanie nie powinieneś wywołaj reader.GetDateTime()
, a następnie przekonwertuj wynik na ciąg, a następnie z powrotem na DateTime
- powinieneś unikać konwersji ciągów tak dalece, jak to możliwe, ponieważ mogą one łatwo zepsuć.
Nie jest do końca jasne, jaką wartość ciągu chcesz dla tych „zerowych” wartości, ale powinieneś być w stanie zamienić je w specjalną wielkość liter za pomocą DateTime.MinValue
dość łatwe. Osobiście starałbym się zachować dane w ich „natywnej” formie tak bardzo, jak to możliwe, zamiast konwertować wszystko na ciągi, ale to inna bitwa.