可以使用C#的数组列表填充SSIS对象变量吗? [英] Can a array list of C# be used to populate SSIS object variable?

查看:103
本文介绍了可以使用C#的数组列表填充SSIS对象变量吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经用C#脚本填充了一个列表,并将其值分配给SSIS对象变量。

I have populated a list in C# script and assigned its value to SSIS object variable.

然后我使用该对象变量通过遍历For Each枚举器来执行一些SQL查询。

Then I used that object variable to execute some SQL query by looping through For each do enumerator.

I尝试通过Foreach ado枚举器执行此操作,但出现错误

I tried doing this by Foreach ado enumerator but getting error


X变量不包含有效的数据对象。

X variable doesn't contain a valid data object.

任何人都可以提供任何输入。

Can anybody provide any inputs.

推荐答案

您正在使用列表。不是记录集,因此需要枚举变量。

Youre using a list. Not a recordset and therefore you need to enumerate over a variable.

如果要使用ADO Recordset,则需要填充数据表。

If you want to use ADO Recordset, you need to fill a datatable instead.



  1. 这向您展示了如何使用变量列表写入对象

  1. This shows you how to write to object with a variable list

这显示了如何使用记录集(使用多个值)写入对象

This shows you how to write to object with recordset (using multiple values)


就像这样:

1 .C#脚本代码-使用变量枚举器用列表写入对象

public void Main()
    {
        // TODO: Add your code here

        List<string> NewList = new List<string>();

        NewList.Add("Ost");
        NewList.Add("Hest");

        Dts.Variables["User::NameList"].Value = NewList;

        Dts.TaskResult = (int)ScriptResults.Success;
    }

1。 ssis中的变量设置

1。 Foreach循环容器设置


使用Foreach变量枚举器并使用对象变量

Use Foreach Variable Enumerator and use your object variable


将结果映射到变量

Map your outcome to a variable(s)

1。执行SQL Task测试用例


用变量写SQL

Write your SQL with variables


将变量映射到参数映射

Map your variable to Parameter mapping

1。结果

2 。 C#脚本代码-使用ADO枚举器用数据表写入对象

   public void Main()
    {
        // TODO: Add your code here

        DataTable dt = new DataTable();

        dt.Columns.Add("FilmName",typeof(string));
        dt.Columns.Add("ActorName",typeof(string));

        dt.Rows.Add("Starwars", "Harrison ford");
        dt.Rows.Add("Pulp fiction", "Samuel Jackson");


        Dts.Variables["User::NameList"].Value = dt;

        Dts.TaskResult = (int)ScriptResults.Success;
    }

2。 ssis中的变量设置

<强> 2。 Foreach循环容器设置


使用Foreach ADO枚举器并将您的对象用作变量

Use Foreach ADO Enumerator and your object as variable


将结果映射到变量(s)

Map your outcome to variable(s)

2。执行SQL任务测试用例


用变量写SQL

Write your SQL with variables


将变量映射到参数映射

Map your variable(s) to Parameter mapping

2。结果

这篇关于可以使用C#的数组列表填充SSIS对象变量吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆