我使用Microsoft.SqlServer.Management.IntegrationServices
命名空间以编程方式运行我的SSIS 2012包。一切似乎都很好但我需要在运行时动态设置我的连接字符串。我知道有很简单的方法可以使用Microsoft.SqlServer.Dts.Runtime
执行此操作,因为Connections
类上有Microsoft.SqlServer.Dts.Runtime.Package
属性。 Microsoft.SqlServer.Management.IntegrationServices
似乎没有类似的等价物。
似乎使用参数集合,下面的代码似乎可以解决这个问题:
project.Parameters["CM<myconnectionmanagername>.UserName"].Set(ParameterInfo.ParameterValueType.Literal, "user");
project.Parameters["CM.<myconnectionmanagername>.Password"].Set(ParameterInfo.ParameterValueType.Literal, "password");
project.Parameters["CM<myconnectionmanagername>.ConnectionString"].Set(ParameterInfo.ParameterValueType.Literal, <your-full-connection-string-here>);
project.Alter();
此解决方案的问题是需要设置所有3个参数才能使连接字符串起作用。这个问题的一个明显问题是它迫使我解析连接字符串以使“user”和“password”成为连接字符串。对于可重用的系统,其中存在许多可能的连接字符串格式,解析代码可能变得丑陋。是否有更好/更简单的方法(使用SSIS中的MOM动态设置连接字符串)?