我刚开始使用C#中的反射,需要帮助。
PropertyInfo.GetValue(obj, null)会返回一个对象值。
如果数据库中该列的值为NULL,则会引发Null异常:
System.Reflection.TargetInvocationException:目标调用引发了异常。 Microsoft.SqlServer.Dts.Pipeline.ColumnIsNullException:该列具有空值。
如何处理这种情况?应该循环遍历所有列,并留下具有NULL值的列。
我刚开始使用C#中的反射,需要帮助。
PropertyInfo.GetValue(obj, null)会返回一个对象值。
如果数据库中该列的值为NULL,则会引发Null异常:
System.Reflection.TargetInvocationException:目标调用引发了异常。 Microsoft.SqlServer.Dts.Pipeline.ColumnIsNullException:该列具有空值。
如何处理这种情况?应该循环遍历所有列,并留下具有NULL值的列。
if(propInfo.GetValue(this, null) != null) {
}
PropertyName_IsNull
(其中 PropertyName 是属性的名称)来首先检查属性是否为null。如果它为空,适当处理,否则使用你已经编写的代码。每个选定输入列的<column>_IsNull属性。此属性也是只读或读/写,具体取决于指定给列的Usage Type。
PropertyInfo.GetValue(obj, null)
执行的是对象 obj
上的属性获取方法。异常是在该获取方法中抛出的。您需要查看正在调用的属性获取方法,并确定异常何时/为什么被抛出。
PropertyInfo
表示的是哪种类型的属性,就很难给出准确的答案。你反射的对象是什么?你想读取哪个属性? - sellmeadog
obj
? - Peter