我可以通过编程方式访问SSIS对象的expression属性吗?

时间:2019-04-29 17:07:23

标签: c# ssis

我在SSIS软件包中设置了一个平面文件连接管理器,该软件包每天进行数据导入。我想设置一个脚本任务/对象,以检查以确保该连接管理器的ConnectionString属性设置为某种值。想知道这是否可能!谢谢。

3 个答案:

答案 0 :(得分:0)

我不确定为什么要这样做,但是您将需要创建一个变量,该变量用于填充连接管理器的ConnectionString属性。从那里,您可以访问脚本任务中的package变量以执行所需的任何检查。不过,据我所知,在脚本任务中无法通过C#直接利用SSIS任务/组件属性。

答案 1 :(得分:0)

您可以做的是将连接字符串存储在variable中,在这里将其称为 ConnectionToSomeServer

连接管理器中选择连接,然后在属性中通过单击[...]打开表达式

Connectionmanage Connection Properties

您可以在此处将ConnectionString设置为定义的变量。

Connection Expression Editor

在脚本任务中,您可以访问包含连接字符串的变量,如下所示:

var connectionString = (string) Dts.Variables["ConnectionToSomeServer"].Value;

现在,您可以在脚本任务中检查连接是否有效:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        connection.Open();
        // connection is valid
    }
    catch (SqlException)
    {
        // connection is not valid
        Dts.TaskResult = (int)ScriptResults.Failure;
        return;
    }
}

您还可以在Project.params中管理连接,它的优点是可以使用Environments进行配置,并将 ConnectionToSomeServer 变量的值引用到项目参数中。 / p>

答案 2 :(得分:0)

您只需在脚本任务中使用Dts命名空间即可从Dts.Connections`属性访问连接管理器:

 string myFlatFileConnection = 
                Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) ;

请注意,连接管理器名称区分大小写

参考