如何在运行时从 .NET 应用程序更改 DTS 包中的连接字符串

本文关键字:DTS 包中 字符串 连接 应用程序 运行时 NET | 更新日期: 2023-09-27 18:32:01

我正在尝试从C#应用程序运行dts包。不过,我需要动态更改其连接字符串。我在网上看了一下,发现我应该使用 Package 对象的变量属性。问题是,我的Visual Studio 2010没有显示包的此变量属性。我正在使用的命名空间是

using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

我应该怎么做?

如何在运行时从 .NET 应用程序更改 DTS 包中的连接字符串

你真的是指DTS(SQL2000)还是它的新兄弟SSIS?无论如何,我遇到了类似的问题,即我必须指定到包的多个动态连接。 我解决它的方法是这样的:

从呼叫者:- 写入 SQL 表两列: - "键"列是与目标的特定连接- "值"列是新的连接值

包装内:- 使用 SQL 任务将键/值对读取到 @User:: 变量中- 使用脚本任务获取自身正在运行的实例的句柄 --> 通过此句柄分配连接字符串

DTS 示例:

' Get a reference to self (the DTS package currently running)
Set oPkg = DTSGlobalVariables.Parent
' Get connection to Input File - Set Path
Set oCn = oPkg.Connections.Item ( "MasterFileIn" )
oCn.DataSource = workAreaPath & "MasterFile.txt"

SSIS 不允许访问活动包对象,但你可以直接设置连接。 在 ScriptMain .cs 文件中:

ConnectionManager cm = Dts.Connections["MasterFileIn"];
cm.ConnectionString = Dts.Variables["DataSource"].Value;