c# - SSIS Null 处理,脚本任务

标签 c# ssis

我在使用 MS SSIS 时遇到问题。我想下载东西并将其上传到数据库。我正在寻找最佳实践,或者我为什么会出错。

我用的是控制流(调用其他任务)。我下载的数据中有一列有空值。为此,我不能使用字符串或整数,否则它会因错误而退出(执行 sql 任务)。所以我使用对象。示例:变量 sBorderName 是对象,列中的数据放在这里。

我想将其上传到其他数据库表。例如,该列中也可以为 null。我无法上传对象变量,因为我得到的数据库类型不匹配。

当我尝试使用脚本任务 (C#) 消除 null-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,就可以了。

关于c# - SSIS Null 处理,脚本任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438093/

相关文章:

c# - 从 C# 将数据库名称作为变量传递给 SQL。是否可以?

c# - 将文件名保存到sql数据库并同时运行ssis包

azure - SSIS OLEDB命令参数错误

sql - SSIS 平面文件源高级编辑器,有没有办法一次更改所有数据类型?

asp.net - 执行 SSIS 包时出错

ssis - 要加载到 Azure SQL DW 中的暂存表的最佳 SSIS 数据流设置

c# - 无法添加封面 nuget 包 - 版本字符串部分太短或太长

c# - ASP.NET MVC : How to default to a page given certain condition?

c# - 如何强制处理对象/GC

C# Accord.net。文本分类