首页 > 解决方案 > 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;
        }
    }
}

有什么我想念的想法吗?希望这是我忽略的容易的事情。

标签: c#datatablessissqlconnectionsqldataadapter

解决方案


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

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

问题解决了。


推荐阅读