C# 如何在SSIS包中两次使用变量数据集
我使用记录集目标在变量中创建数据集。 稍后在脚本组件(源)中使用变量readonly,但当我尝试在其他脚本组件(源)中使用此变量时,会得到空数据集。我想第一个脚本组件阻塞了我的变量,不知道如何修复它C# 如何在SSIS包中两次使用变量数据集,c#,sql-server-2008,ssis,C#,Sql Server 2008,Ssis,我使用记录集目标在变量中创建数据集。 稍后在脚本组件(源)中使用变量readonly,但当我尝试在其他脚本组件(源)中使用此变量时,会得到空数据集。我想第一个脚本组件阻塞了我的变量,不知道如何修复它 VariableDispenser variableDispenser = (VariableDispenser)this.VariableDispenser; variableDispenser.LockForRead("User::dsOrganization");
VariableDispenser variableDispenser = (VariableDispenser)this.VariableDispenser;
variableDispenser.LockForRead("User::dsOrganization");
IDTSVariables100 vars;
variableDispenser.GetVariables(out vars);
OleDbDataAdapter oleDA = new OleDbDataAdapter();
DataTable dt = new DataTable();
var ds = vars["User::dsOrganization"].Value;
oleDA.Fill(dt, ds);
foreach (DataRow dr in dt.Rows)
{
Output0Buffer.AddRow();
Output0Buffer.Organization = dr["Organization"].ToString();
Output0Buffer.OrganizationCode = dr["OrganizationCode"].ToString();
Output0Buffer.SPOrganizationCode = dr["SPOrganizationCode"].ToString();
Output0Buffer.SPOrganizationMember = dr["SPOrganizationMember"].ToString();
}
vars.Unlock();
两个脚本组件使用相等的代码第一个组件获取44行第二个-无
若将脚本组件更改为脚本任务,则一切正常 问题在于,当您第二次尝试循环遍历记录集时,枚举器的指针位于记录集的末尾。在将记录集加载到数据集中之前,请尝试克隆记录集
但是,应避免将大型数据集加载到变量中。尝试评估和优化流的设计。问题在于,当您第二次尝试循环遍历记录集时,枚举器的指针位于记录集的末尾。在将记录集加载到数据集中之前,请尝试克隆记录集
但是,应避免将大型数据集加载到变量中。尝试评估和优化流程的设计。post code-没有它我们无法解决问题。post code-没有它我们无法解决问题。