Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SSIS空处理,脚本任务_C#_Ssis - Fatal编程技术网

C# SSIS空处理,脚本任务

C# SSIS空处理,脚本任务,c#,ssis,C#,Ssis,我和SSIS女士有麻烦。我想下载并上传资料到数据库。我在寻找最佳实践,或者为什么我会出错 我使用控制流(称为其他任务)。我下载的数据中有一列为空。为此,我不能使用字符串或整数,否则它将带错误退出(执行sql任务)。所以我使用object。示例:变量sBorderName是object,列中的数据位于此处 我想把这个上传到另一个数据库表。例如,该列中也可以有null。我无法上载对象变量,因为我获取的数据库类型不匹配 当我试图通过脚本任务(C#)消除空-s时,我使用以下方法: sBorderName

我和SSIS女士有麻烦。我想下载并上传资料到数据库。我在寻找最佳实践,或者为什么我会出错

我使用控制流(称为其他任务)。我下载的数据中有一列为空。为此,我不能使用字符串或整数,否则它将带错误退出(执行sql任务)。所以我使用object。示例:变量sBorderName是object,列中的数据位于此处

我想把这个上传到另一个数据库表。例如,该列中也可以有null。我无法上载对象变量,因为我获取的数据库类型不匹配

当我试图通过脚本任务(C#)消除空-s时,我使用以下方法: sBorderName是一个对象 sBorderNameSafe是字符串

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任务。(所以不是数据流部分。)有什么原因不使用数据流来完成所有这些吗?我需要基于数据运行任务,并且必须转换数据。(比如真正的大开关盒、字符串和日期合并等丑陋的事情。)