无法在脚本组件

时间:2015-06-02 01:15:15

标签: ssis

我试图在脚本组件中为其他计算调用2个用户变量。

public string getFinYear(DateTime dt)
    {
        string finYr;
        if (dt.Month >= 7 && dt.Month <= 12)
            finYr = dt.Year.ToString().Substring(2, 2) + "_" + dt.AddYears(1).Year.ToString().Substring(2, 2);
            //finYr = dt.Year.ToString()+ "-" + dt.AddYears(1).Year.ToString();

        else
            finYr = dt.AddYears(-1).Year.ToString().Substring(2, 2) + "_" + dt.Year.ToString().Substring(2, 2);
            //finYr = dt.AddYears(-1).Year.ToString() + "-" + dt.Year.ToString();

        return finYr; 
    }


public void Main()
    {
        // TODO: Add your code here

        Dts.Variables["User::currentDT"].Value = DateTime.Now; // current date time

        if (Dts.Variables.Contains("CalYear") == true && Dts.Variables.Contains("CalMonth") == true)
        {
           int yr = (int)Dts.Variables["CalYear"].Value;

           int mth = (int)Dts.Variables["CalMonth"].Value;

            DateTime firstDayOfMonth = new DateTime(yr, mth, 1);

            Dts.Variables["User::monthName"].Value = firstDayOfMonth.ToString("MMMM", CultureInfo.InvariantCulture);

            Dts.Variables["User::finYear"].Value = getFinYear(firstDayOfMonth);

        } .....

在上面的代码中,我手动设置CalYear = 2015和CalMonth = 2;但是,当我运行脚本时,它不返回monthName和finYear。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试调试脚本任务或使用消息框显示值,然后再将其分配给日期或月份。 使用System.Windows.Forms;

MessageBox.Show(Dts.Variables [ “富”]。Value.ToString())