You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SSIS的C#脚本中如何为Int类型字段赋值Null值?

解决方案

首先要明确:C#中的值类型(比如Int16/short)本身无法存储null,所以第一步需要将Output0Buffer.METHODID的类型修改为可空值类型short?(等价于Nullable<Int16>),这样才能直接赋值null。

接下来是具体的代码处理逻辑,需要同时处理SharePoint返回值为null或DBNull.Value的情况,还要避免解析失败抛出异常:

// 获取SharePoint返回的原始值
var rawMethodId = listItem["METHOD_ID"];

// 判断是否为空值
if (rawMethodId == null || rawMethodId == DBNull.Value)
{
    Output0Buffer.METHODID = null;
}
else
{
    // 尝试解析为Int16,避免非数字字符串导致异常
    if (Int16.TryParse(rawMethodId.ToString(), out short parsedValue))
    {
        Output0Buffer.METHODID = parsedValue;
    }
    else
    {
        // 解析失败时也赋值null,或者根据业务需求设置默认值
        Output0Buffer.METHODID = null;
    }
}

关键说明

  • 如果无法修改Output0Buffer.METHODID的类型(比如它是固定生成的实体类),那只能用一个约定的特殊值(比如-1)来代表null,但这不符合你直接赋值null的需求,所以优先推荐修改为可空值类型。
  • 使用Int16.TryParse而非Int16.Parse,可以在原始值不是有效数字时避免抛出异常,逻辑更健壮。
  • SharePoint返回空字段时,可能返回null或DBNull.Value,所以两种情况都要判断。

内容的提问来源于stack exchange,提问作者Henry-Philippe Dumont LU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:18:20