Разглеждайки тази документация
, изглежда, че посочвате две противоречиви опции (AllowZeroDateTime=true и ConvertZeroDateTime=true ) и такъв, който изглежда не е в списъка (ZeroDateTimeBehavior=ConvertToNull ).
Предлагам го, освен ако нямате действителни данни, които са DateTime.MinValue които не искате да смесвате с "нулевата" стойност, вие просто посочете ConvertZeroDateTime=true и открийте дали резултатът е DateTime.MinValue . Определено не трябва извикайте reader.GetDateTime() , след това преобразувайте резултата в низ и след това обратно в DateTime - трябва да избягвате конвертирането на низове, доколкото можете, тъй като те могат да объркат нещата за вас доста лесно.
Не е много ясно каква стойност на низа искате за тези "нулеви" стойности, но би трябвало да можете да ги поставяте в специален случай с DateTime.MinValue сравнително лесно. Лично аз всъщност бих се опитал да запазя данните в тяхната „родна“ форма колкото е възможно повече, вместо да преобразувам всичко в низове, но това е различна битка.