2

我觉得我缺少一些配置或其他东西,因为我已经在线学习了大量的教程,但无法获得任何脚本任务的示例来工作。我也无法调试错误,因为我不是 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;`

错误:

在 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。在 System.RuntimeType.InvokeMember 调用(对象 obj,BindingFlags invokeAttr,BindingFlags,BindingFlags 参数,CultureInfo 文化)(字符串名称,BindingFlags bindingFlags,BindingFlags,对象目标,Object[] providedArgs,ParameterModifier[] 修饰符,CultureInfo 文化, String[] namedParams) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

4

3 回答 3

2

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

您必须明确地将 ReadOnlyVariables/ReadWriteVariables 添加到脚本任务中,以便通过双击设计器中的脚本任务,选择对话框右侧的“脚本”,然后单击 ReadOnlyVariables/ ReadWriteVariables 下拉。

我知道这个回复很晚,但这给我带来了很多悲伤,希望它对某人有所帮助。

于 2018-11-01T11:08:33.467 回答
0

运行步骤

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

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

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

  4. 任务执行时,会弹出消息。请核实数据。

脚本窗口的右侧是否有任何警告?

在此处输入图像描述

于 2017-05-01T23:24:29.750 回答
0

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

于 2020-03-06T14:33:22.533 回答