SSIS 脚本任务错误填充:SelectCommand.Connection 属性尚未初始化

问题描述

根据我在网上找到的搜索结果,我尝试了几种不同的方法,但结果相同。

我正在处理一个 SSIS 脚本任务,该任务将执行一个需要将 TVP 参数传递给它的存储过程。我已将所有这些连接起来并正常工作,但是当它到达 da.Fill(resultDT) 我收到错误

填充:SelectCommand.Connection 属性尚未初始化。

OleDbDataAdapter A = new OleDbDataAdapter();
DataTable dt = new DataTable();

A.Fill(dt,Dts.Variables["User::Companies"].Value);

DataTable resultDT = new DataTable();

using (sqlConnection sqlcon = (sqlConnection)(Dts.Connections["RegistryConnection"].AcquireConnection(Dts.Transaction) as sqlConnection))
{
    using (sqlCommand cmd = new sqlCommand())
    {
        cmd.Connection = sqlcon;
        cmd.CommandText = "[Registry].[GetClientData_ByCompanyIDs]";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@companyIDs",dt);

        using (sqlDataAdapter da = new sqlDataAdapter())
        {
            da.SelectCommand = cmd;
            da.Fill(resultDT);
            Dts.Variables["User::Clients"].Value = resultDT;
        }
    }
}

任何想法我错过了什么?希望这很容易被我忽略。

解决方法

问题是我使用的是 OLEDB 连接管理器,显然无法按照我的方式将其转换为 SQLConnection。

需要设置 ADO.Net 连接管理器,然后 SQLConnection 转换按预期工作。

问题已解决。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...