SSIS脚本中的调试错误

时间:2016-09-20 13:32:12

标签: c# ssis

我是新的SSIS包,我正在尝试创建一个SSIS脚本任务,它创建一个空文件,文件名应该像“FileName__yyyymmdd __。csv”。 我正在尝试编译此代码但是编译时间很长,甚至没有显示任何错误,但是当我执行整个包时,包在脚本任务中失败。

以下代码用Main函数编写:

    Dts.TaskResult = (int)ScriptResults.Success;
    String FileLoc="D:\\Folder\\" ;
    String BaseName="FileName__";
    DateTime dt= DateTime.Now;
    String yr= dt.Year.ToString();
    String mm= dt.Month.ToString();
    String dd= dt.Day.ToString();
    String FileName = BaseName + yr + mm + dd + "__"+".csv";
    File.Create(FileLoc+FileName).Dispose();

有人可以突出显示错误吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

文件名可以在1行中生成。

此外,您可以在脚本任务中设置断点,然后在选择包作为启动包后,在调试模式下执行包。

你做错了一些事情(或效率低下)。我已经纠正了你的代码。请尝试以下代码。它有效。

您需要在脚本using文件之上添加以下.cs语句。

using System;
using System.IO;
using System.Globalization;

在主函数中,根据需要使用以下代码。

string fileLocation = @"D:\Folder\" ;
string fileNamePrefix = "FileName__";
string filename = Path.Combine(fileLocation, fileNamePrefix 
                                   + DateTime.Today.ToString("yyyyMMdd", CultureInfo.InvariantCulture) 
                                   + "__.csv"); 

// This will print "D:\Folder\FileName__20160920__.csv". 
Console.WriteLine(filename);

// if file does not exist, create it.
if (! File.Exists(filename))
{
    using (StreamWriter sw = File.CreateText(filename))
    {
       // write data into file using sw.WriteLine(...) or something similar
    }
}
Dts.TaskResult = (int)ScriptResults.Success;

这是一个.NetFiddle,仅适用于它的C#部分。 https://dotnetfiddle.net/UQRhqB