C# 如何在运行时从.NET应用程序更改DTS包中的连接字符串?
我正在尝试从C#应用程序运行dts包。不过,我需要动态更改它的连接字符串。我在网上浏览了一下,发现我应该使用Package对象的Variables属性。问题是,我的VisualStudio2010没有为包显示这个变量属性。我使用的名称空间是C# 如何在运行时从.NET应用程序更改DTS包中的连接字符串?,c#,sql-server,dts,C#,Sql Server,Dts,我正在尝试从C#应用程序运行dts包。不过,我需要动态更改它的连接字符串。我在网上浏览了一下,发现我应该使用Package对象的Variables属性。问题是,我的VisualStudio2010没有为包显示这个变量属性。我使用的名称空间是 using Microsoft.SqlServer.Dts.Runtime; using Microsoft.SqlServer.Dts.Runtime.Wrapper; 我该怎么办?您真正指的是DTS(SQL2000)还是其较新的同级SSI?在任何情况下
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
我该怎么办?您真正指的是DTS(SQL2000)还是其较新的同级SSI?在任何情况下,我都有一个类似的问题,我必须指定一个包的多个动态连接。我解决问题的方法是:
从调用方:
-向SQL表写入两列:
-“Key”列是与target的特定连接
-“Value”列是新的连接值
包装内:
-使用SQL任务将键/值对读入@User::variables
-使用脚本任务获取自身运行实例的句柄
-->通过此句柄分配连接字符串
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;
请不要在标题前加上“C#”之类的前缀。这就是标题的意义。@JohnSaunders–嗯?这就是标签的作用?@KennyEvitt:我想我们甚至-我不知道你指的是什么,我想,既然你在回复我四个月前的一条评论,你就不知道我指的是什么。请看“”。