Посмотрите на эту статью
http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx
Ключевая часть, на которую стоит обратить внимание:
// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
Возможно, ваша база данных не возвращает стандартный шаблон. Мне кажется глупым, что это бросило бы исключение все же. И в примере он говорит только значение «только для даты», а ваше - нет.
Если у вас есть дата в строке, вы можете выполнить старое ручное исправление:
public static string FixDate(string date)
{
return (date.IndexOf('/') == 1) ? "0" + date : date;
}