无法使SSIS脚本任务工作

时间:2017-05-01 15:35:55

标签: c# sql-server ssis etl script-task

我觉得我缺少一些配置或者什么,因为我已经在线跟踪了大量的教程,但是无法获得任何脚本任务的示例。我无法调试错误,因为我不是C#开发人员。

目前,我只是检查目录中是否存在文件:

1)User::gvLastMonthImportFile是字符串(只读)& User::gvLastMonthImportFileExists是布尔值(读写)

2)将using System.IO;添加到我的命名空间

3)

string fullPath = Dts.Variables["User::gvLastMonthImportFile"].Value.ToString();
Dts.Variables["User::gvLastMonthImportFileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;`

ERROR:

  

at System.RuntimeMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor)   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments)   在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)   at System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs,ParameterModifier [] modifiers,CultureInfo culture,String [] namedParams)   在Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

3 个答案:

答案 0 :(得分:0)

运行步骤

  1. 在脚本中添加2行代码。

    Messagebox.Show(Dts.Variables["User::gvLastMonthImportFile"].Value.ToString());
    Messagebox.Show(File.Exists(fullPath).Value.ToString());
    
  2. 保存并关闭脚本,确定脚本任务。

  3. 右键单击脚本任务,执行任务。

  4. 当任务执行时,将弹出消息。请验证数据。

  5. Is there any warning in the right hand side of script window?

    enter image description here

答案 1 :(得分:0)

我最近遇到了这个问题,这是因为我没有将变量添加到脚本中。

您必须在脚本任务中显式添加ReadOnlyVariables / ReadWriteVariables,以使其具有对它们的任何访问权限,方法是双击设计器中的脚本任务,在对话框右侧选择“脚本”,然后单击ReadOnlyVariables / ReadWriteVariables下拉。

我知道这个回复很晚,但这引起了我很大的悲伤,希望它能对某人有所帮助。

答案 2 :(得分:0)

我遇到了同样的问题,被困了几个小时。然后我发现了我的问题。变量区分大小写,我拼错了其中之一。