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)
表示值不为空。删除感叹号将解决问题
我在 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)
表示值不为空。删除感叹号将解决问题