近期在做一个批量导入功能. 突然间发现.空日期不能被导入到数据库.

使用的是Sqlbulkcopy 类 提示 该字符串未被识别为有效的 DateTime

无论数据库结果有没有允许为null 都会提示. 难道我必须给个日期吗?

后来经过多次尝试,最终解决方案如下.

foreach (System.Data.DataRow row in datatable.Rows)
            {
                if (string.IsNullOrEmpty(row["InputDate"] as string)) row["InputDate"] = null;
                if (string.IsNullOrEmpty(row["CaiYangShiJian"] as string)) row["CaiYangShiJian"] = null; 
            }

这2个日期如果是空字符串那么变成 null 这样就不会报错了.
最好的方法是在读取excel文件的时候就转换一下,防止二次遍历了.