【发布时间】:2019-03-22 04:46:23
【问题描述】:
我在数据流中有一个脚本组件转换。 在这个脚本组件中,我从一个对象变量中读取了一个表。通过脚本的第一条记录工作正常。变量正确读取并完美加载到列表对象中。
下一条记录传递到脚本中出现问题。
查看它报告的记录计数为 44 的变量,当它尝试加载到我的列表中时,我得到一个 rowcount = 0
下面是加载列表的脚本
List<PublicHoliday> PublicHolidays = new List<PublicHoliday>();
OleDbDataAdapter A = new OleDbDataAdapter();
DataTable dt = new DataTable();
A.Fill(dt, Variables.LISTPublicHolidays);
foreach (DataRow row in dt.Rows)
{
object[] array = row.ItemArray;
var Public = new PublicHoliday()
{
DateKey = int.Parse(array[0].ToString()),
FullDateAlternateKey = DateTime.Parse(array[1].ToString())
};
PublicHolidays.Add(Public);
}
我错过了什么吗?有没有人遇到过这个问题?
【问题讨论】:
-
代码在什么方法,即PreExecute、Input0_ProcessInputRow、PostExecute?
-
@userfl89 答案中提到的内容是正确的。问题是对象变量contains a Recordset 在使用 Fill() 方法使用时需要关闭并重新打开,否则多次执行时将返回空结果。与代码执行的方法无关
-
@Yahfoufi 我明白了,这是有道理的。谢谢
-
检查我的答案更新我添加了一个新的可能的解决方案
标签: c# sql-server ssis etl ssis-2012