3

我有一个 OLEDB 连接,我希望在脚本中动态更改此连接。我正在使用以下代码获取此 OLEDB 连接的信息:

ConnectionManager cm = Dts.Connections["VendorDB"];
        DbConnection conn = null;
        if (cm.CreationName == "OLEDB")
        {
            Wrap.IDTSConnectionManagerDatabaseParameters100 cmParams =
            cm.InnerObject as Wrap.IDTSConnectionManagerDatabaseParameters100;
            conn = cmParams.GetConnectionForSchema() as DbConnection;
        }
        else
        {
            conn = cm.AcquireConnection(null) as DbConnection;
        }

        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }
        MessageBox.Show(conn.ConnectionString.ToString());

我需要更改此连接信息(例如我想更改初始目录等)并希望此更改后的信息在整个包中保留。怎么做?

4

1 回答 1

1

我会通过结合使用来解决这个问题

第一步相对容易:

打开变量选项卡(右键单击控制流内部并单击变量)并添加您想要的变量(可能是您的连接字符串的字符串)

使用新定义的变量创建表达式。使用第三个链接中的代码在运行时更改值。

Dts.Variables("myVariable").Value = @"C:\Test2.txt";

Dts.TaskResult = ScriptResults.Success
于 2013-01-14T09:32:54.997 回答