0

我似乎无法连接到我在脚本任务内的 SSIS 包中设置的数据库连接。这是我的代码,它是一个 OleDB 连接。

public void Main()
    {
        // TODO: Add your code here
        OleDbConnection myOleDbConnection = new OleDbConnection();
        myOleDbConnection = (OleDbConnection)(Dts.Connections["Connection"].AcquireConnection(Dts.Transaction) as OleDbConnection);
        MessageBox.Show(myOleDbConnection.ConnectionString, "OleDB Connection");

        Dts.TaskResult = (int)ScriptResults.Success;
    }

我得到以下异常

在此处输入图像描述

4

1 回答 1

0

连接管理器的 AcquireConnection() 方法返回一个非托管对象,在您的情况下Oledb它返回 native COM object。因此,Ado.net connection如果可能,请在您的场景中使用。

如果您想坚持使用 Oledb,那么这里有一个解决方法。

ConnectionManager cm = Dts.Connections["Connection"];
IDTSConnectionManagerDatabaseParameters100 cmParams = cm.InnerObject as  
                                                      IDTSConnectionManagerDatabaseParameters100;
OleDbConnection myOleDbConnection = cmParams.GetConnectionForSchema() as OleDbConnection;
于 2014-12-10T14:19:46.777 回答