Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在运行时从.NET应用程序更改DTS包中的连接字符串?_C#_Sql Server_Dts - Fatal编程技术网

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

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?在任何情况下

我正在尝试从C#应用程序运行dts包。不过,我需要动态更改它的连接字符串。我在网上浏览了一下,发现我应该使用Package对象的Variables属性。问题是,我的VisualStudio2010没有为包显示这个变量属性。我使用的名称空间是

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:我想我们甚至-我不知道你指的是什么,我想,既然你在回复我四个月前的一条评论,你就不知道我指的是什么。请看“”。