帮朋友改代码,在一个DataTable转换.csv的公共类中碰到这个问题。
借鉴这里的问答:这里的问答:反射PropertyInfo.GetValue(对象)抛出DBNull异常 - VoidCC
朋友手里的简化后类似这样:
row[p.Name] = p.GetValue(obj,null);
项目用的.NET Framework 4,GetValue方法略有区别。
遇空后给DBNull.Value,改后为:
row[p.Name] = p.GetValue(obj,null) ?? DBNull.Value;