SSIS脚本组件错误:索引超出了数组的界限



尝试在SSIS中运行脚本时出现以下错误索引超出了数组的界限。

位于ScriptMain.PreExecute((位于Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute((

这个剧本过去运行得很好。我最近更改了输入的元数据和数据(输入本身正在工作(,所以这可能是导致问题的原因。然而,我不知道到底出了什么问题。

这是我的脚本

public class ScriptMain : UserComponent

private Dictionary<string, string> tsgMapping;
private Dictionary<string, string> fgMapping;
public override void PreExecute()
{
base.PreExecute();
//load mapping
tsgMapping = new Dictionary<string, string>();
fgMapping = new Dictionary<string, string>();
var mappingFilePath = Connections.Connection.ConnectionString;
using (var reader = new StreamReader(mappingFilePath))
{
reader.ReadLine(); //skip first line of headers
string line;
while ((line = reader.ReadLine()) != null)
{
var splitLine = line.Split('|');
tsgMapping.Add(splitLine[0], splitLine[1]);
fgMapping.Add(splitLine[0], splitLine[2]);
}
}
}

public override void PostExecute()
{
base.PostExecute();
/*
* Add your code here
*/
}

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (!tsgMapping.TryGetValue(Row.TransactionName, out var tsg))
{
tsg = "Ask CPB";
}
Row.TSGRaw = tsg;
if (!fgMapping.TryGetValue(Row.TransactionName, out var fg))
{
fg = "Ask CPB";
}
Row.FGRaw = fg;
}

}

在阅读了我自己的帖子后,我发现了问题所在。我的映射文件中有错误的数据(末尾为空白行(,导致脚本失败。

最新更新