C# SSIS 如何循环访问列并设置为 null
本文关键字:访问 设置 null 循环 SSIS 何循环 | 更新日期: 2023-09-27 18:32:46
我需要将任何空字符串的列设置为 SSIS 中的实际空值
通常我可以使用派生列并将其设置为 NULL(DSTR,18,1252(
由于我有大量字段并希望一次性完成,因此我决定使用脚本组件来执行此操作。这是到目前为止的代码
foreach (PropertyInfo inputColumn in Row.GetType().GetProperties())
{
if (!inputColumn.Name.EndsWith("IsNull")
{
if (inputColumn.GetValue(Row, null).ToString().Equals(""))
{
inputColumn.SetValue(Row, null, null);
}
}
}
但它抛出此错误:
[脚本组件 [11692]] 错误: 系统。空引用异常: 对象引用未设置为对象的实例。 在
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(Exception e( 在
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer( at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100 wrapper, Int32 inputID, IDTSBuffer100 pDTSBuffer, IntPtr bufferWirePacket(
如何将其设置为派生列中的 NULL(类型(的等效值?
根据我的评论,只需将等效的 _IsNull 属性设置为 true。
Row.GetType().GetProperty(inputColumn.Name + "_IsNull").SetValue(Row, true, null);