C# SSIS空处理,脚本任务
我和SSIS女士有麻烦。我想下载并上传资料到数据库。我在寻找最佳实践,或者为什么我会出错 我使用控制流(称为其他任务)。我下载的数据中有一列为空。为此,我不能使用字符串或整数,否则它将带错误退出(执行sql任务)。所以我使用object。示例:变量sBorderName是object,列中的数据位于此处 我想把这个上传到另一个数据库表。例如,该列中也可以有null。我无法上载对象变量,因为我获取的数据库类型不匹配 当我试图通过脚本任务(C#)消除空-s时,我使用以下方法: sBorderName是一个对象 sBorderNameSafe是字符串C# SSIS空处理,脚本任务,c#,ssis,C#,Ssis,我和SSIS女士有麻烦。我想下载并上传资料到数据库。我在寻找最佳实践,或者为什么我会出错 我使用控制流(称为其他任务)。我下载的数据中有一列为空。为此,我不能使用字符串或整数,否则它将带错误退出(执行sql任务)。所以我使用object。示例:变量sBorderName是object,列中的数据位于此处 我想把这个上传到另一个数据库表。例如,该列中也可以有null。我无法上载对象变量,因为我获取的数据库类型不匹配 当我试图通过脚本任务(C#)消除空-s时,我使用以下方法: sBorderName
if (Dts.Variables["User::sBorderName"].Value == null)
{
Dts.Variables["User::sBorderNameSafe"].Value = "NULL ERROR";
}
else
{
Dts.Variables["User::sBorderNameSafe"].Value =
(String)Dts.Variables["User::sBorderName"].Value;
}
我得到运行时错误,没有任何错误提示。错误源于else案例。我仔细检查了变量、范围、写/读权限等
你能帮帮我吗?这有什么问题?如果你有更好的想法,解决问题的方法是什么
西罗
更新:
Dts.Events.FireWarning(14, "Display Script", "sBorderName is:" + Dts.Variables["User::sBorderName"].Value, "", 0);
不起作用,它显示“sBorderName是:”
但是,每次转换值都会出现运行时错误
(String)Dts.Variables["User::sBorderName"].Value
如何正确处理这个问题
Convert.ToString(Dts.Variables("sBorderName ").Value)
如果变量有时可以为null,则执行此操作
如果变量有时可能为null,则执行此操作。我不清楚您的解决方案。您声明您需要“下载并上传资料到数据库”。您是说您需要选择并插入/更新数据,还是说您需要来回ftp文件?是的,简单地选择并插入。我必须使用控制流来执行sql任务。(所以不是数据流部分。)有什么原因不使用数据流来完成所有这些吗?我需要基于数据运行任务,并且必须转换数据。(像真正的大开关盒、字符串和日期合并等丑陋的事情)我不清楚你的解决方案。您声明您需要“下载并上传资料到数据库”。您是说您需要选择并插入/更新数据,还是说您需要来回ftp文件?是的,简单地选择并插入。我必须使用控制流来执行sql任务。(所以不是数据流部分。)有什么原因不使用数据流来完成所有这些吗?我需要基于数据运行任务,并且必须转换数据。(比如真正的大开关盒、字符串和日期合并等丑陋的事情。)