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.