gpt4 book ai didi

c# - 影响 C# 脚本任务中的 SSIS 对象变量

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:38 25 4
gpt4 key购买 nike

我创建了一个无法调试的简单脚本。这是我的问题:我希望使用 Visual Studio 2015 将目录的内容存储到 SSIS 中的变量中。

我在我的 SSIS 包中创建了一个变量,并将其数据类型设置为对象。我在我的包中添加了一个脚本任务,其中包含以下代码:

#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;
using System.Collections.Generic;
#endregion

namespace ST_c6399821104c42c2859b7b2481055848 {

[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase {

public void Main() {

string CSVFilesCompletePath;

if (Dts.Variables.Contains("User::CSVFilesPathAbsolute") == true
&& Dts.Variables.Contains("User::CSVFilesPathRelativeCountry") == true
&& Dts.Variables.Contains("User::CSVFilesCountryObject") == true) {

CSVFilesCompletePath = Dts.Variables["User::CSVFilesPathAbsolute"].ToString() + Dts.Variables["User::CSVFilesPathRelativeCountry"].ToString();


String[] fileListTable = Directory.GetFiles(CSVFilesCompletePath, "*.xlsx");
List<string> fileList = new List<string>(fileListTable);
Dts.Variables["User::CSVFilesCountryObject"].Value = fileList;
}

Dts.TaskResult = (int)ScriptResults.Success;

}
#region ScriptResults declaration
/// <summary>
/// This enum provides a convenient shorthand within the scope of this class for setting the
/// result of the script.
///
/// This code was generated automatically.
/// </summary>
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
}
}

正如这里所解释的: SSIS Script Task Get File Names and Store to an SSIS Object Variable

但是当我尝试通过 SSIS 作业启动它时,此代码返回以下错误:

SSIS C# Script Error

变量在脚本向导中正确设置为 ReadWriteVariables。

问题是,当我尝试影响 SSIS 变量并尝试将 String[] 放入其中时,我的代码显示此错误。

最佳答案

尝试在

中添加一个 try-catch
Directory.GetFiles

在整个主体中调用或,然后将错误消息和/或异常的堆栈跟踪设置为写入 SSIS 变量以进行调试。

编辑:看起来@H.Fadlallah 指出了问题所在。您应该使用 DtsVariable 的 Value 属性,而不是 ToString()

关于c# - 影响 C# 脚本任务中的 SSIS 对象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com