如何从SSIS包中读取连接字符串而不是从配置文件中读取连接字符串

时间:2013-07-15 07:40:51

标签: ssis

我有一个要求,我必须读取SSIS包的连接字符串值,而无需通过Visual Studio打开它。

最近我们遇到了一个问题,SSIS包中硬编码的连接字符串没有反映在配置文件中。因此,我们计划使用一个实用程序从包中获取连接字符串,并将其与配置文件进行比较。

但是我找不到直接从SSIS包中获取连接字符串的方法。

1 个答案:

答案 0 :(得分:0)

此方法要求您在计算机上安装Integration Services组件。实例化Application和Package对象,枚举包的Connections集合中的所有值。从那里,检查ConnectionString对象。

此方法不考虑表达式或配置。

using Microsoft.SqlServer.Dts;

public static void FindConnections()
{
        string fileName = string.Empty;
        Package package = null;
        Application app = null;

        fileName = @"C:\sandbox\SSISHackAndSlash2008\SSISHackAndSlash2008\MyPackage.dtsx";
        package = new Package();
        app = new Application();
        app.LoadPackage(fileName, null);
        Connections packageConnections = package.Connections;
        // code approximate
        foreach(Connection conn in packageConnections)
        {
            Console.Writeline(conn.ConnectionString);
        }

}