Обновленный ответ :
Посмотрев на ваш опубликованный ответ, я вижу, что вы проверяете DBNull.Value в ячейках. Это может быть источником вашей проблемы, поскольку DBNull.Value не может быть приведен к DateTime. Если вы программно добавляете строки, попробуйте заменить DBNull.Value на ноль (Nothing).
Оригинальный ответ :
Попробуйте сделать это для каждого столбца, который содержит данные DateTime, предпочтительно до загрузки любых данных:
myDateTimeColumn.ValueType = GetType(DateTime)
Согласно MSDN свойство ValueType «используется при фильтрации или сортировке столбцов по содержанию их ячеек». Поэтому я обязательно установлю его для любого столбца, который позволяет сортировку.
С этим установленным свойством сетка может быть отсортирована по столбцу с нулевыми значениями, что приведет к преобразованию вставленных / обновленных ячеек в DateTime.