SSIS 脚本组件作为源 Null 值

SSIS script component as source Null value

我在 SSIS 中有一个包,它使用 adomd.Net 从 essbase 多维数据集加载数据。 2 列包工作正常,但是当我添加 3. 列包时失败。

错误消息说:

Object reference not set to an instance of an object.

第一行第三列包含 null 和其他行中的一些值。

问题在第 3 列的 null 值中查找。 我试过这个 if 语句,但我得到的是空列而不是值。

AdomdDataReader reader = null;
    try
    {
        using (AdomdConnection conn = new AdomdConnection(connectionString))
        {
            conn.Open();
            using (AdomdCommand cmd = new AdomdCommand(query, conn))
            {
                reader = cmd.ExecuteReader();

                while (reader.Read())
                {

                    Output0Buffer.AddRow();

                    Output0Buffer.Column = (reader.GetString(0));
                    Output0Buffer.Column1 = (reader.GetString(1));

                    if (!reader.IsDBNull(2))
                    {
                        Output0Buffer.Column2 = "test";
                    }
                    else
                    {
                        Output0Buffer.Column2 = (reader.GetString(2));
                    }

                    Console.WriteLine("fin");
                }
            }

        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);

        throw;
    }

这段代码的工作方式与预期相反:

 if (!reader.IsDBNull(2))
  {
      Output0Buffer.Column2 = "test";
  }
  else
  {
      Output0Buffer.Column2 = (reader.GetString(2));
  }

!reader.IsDBNull(2) 表示值不为空。删除感叹号将解决问题