Вам необходимо ознакомиться с вашими данными.Если вы находитесь в ситуации, когда данные могут быть действительно чем угодно в любое время, вы находитесь в плохом положении.Честно говоря, я сомневаюсь, что вы находитесь в такой ситуации.По крайней мере, я очень надеюсь, что вы нет.
Если это исключительно , если данные в столбце не являются датой, то вытащите их как дату.Не вытаскивайте его и надейтесь, что он отлично сформатируется, вытащите его как единое целое!
DateTime myDate = (DateTime)datarow["MyColumn"]; // C#
Dim myDate As DateTime = CType(datarow("MyColumn"), DateTime) 'VB
Даже если вы обнаружите, что ваши данные строго напечатаны, немедленно проанализируйте их.Установите ожидание, что значение является датой в вашем коде.Если это не так, это создаст исключение.
Редактировать: Крис упоминает хорошее альтернативное предложение в комментариях.Вы также можете написать
DateTime myDate = datarow.Field<DateTime>("MyColumn");
Преимущество здесь в том, что если в столбце допустимы нули?
DateTime? myDate = (DateTime?)datarow["MyColumn"]; // C#
Dim myDate = CType(datarow("MyColumn"), DateTime?) 'VB
Здесь вы можете получить «Указанное приведение не действительное», если строка содержит DBNull.
DateTime? myDate = datarow.Field<DateTime?>("MyColumn"); // C#
Dim myDate = datarow.Field(of DateTime?)("MyColumn") 'VB
Этот альтернативный вариант обрабатывает DBNull соответствующим образом.