c# - 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 强制转换按预期工作。
问题解决了。